Portál AbcLinuxu, 12. května 2025 05:56

Dotaz: PHP include obsahu proměnné

1.7.2009 16:19 Radim Trnavec
PHP include obsahu proměnné
Přečteno: 517×
Odpovědět | Admin

Zdravím, mám tento dotaz:

Je v PHP nějaký způsob, jak vložit do kódu ke zpracování text z proměnné, podobně jako to dělá include? Zatím to obcházím tak, že kód zapíšu do souboru, který následně přidávám přes include.

O co mi jde - využít parsování aritmetických výrazů. Bezpečnost si ohlídám, v obou případech je vlastně riziko infiltrace stejné.

Věděl by někdo, zda existuje i nějaká ta bezsouborová varianta? Díky, Radim

 

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.7.2009 16:37 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: PHP include obsahu proměnné
Odpovědět | | Sbalit | Link | Blokovat | Admin
eval(). Ne nadarmo se ale říká eval is evil. Myslím, že zrovna u aritmetických výrazů by nemuselo být těžké se bez něj obejít.
1.7.2009 17:16 Radim Trnavec
Rozbalit Rozbalit vše Re: PHP include obsahu proměnné

Díky, to je přesně ono. Inu jsem pořád začátečník. :)

Myslím, že neobejdu - budou tam i proměnné. Tu bezpečnost bych si představoval jako znakový filtr, mapování na proměnné ve skriptu atp.

 

1.7.2009 17:40 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: PHP include obsahu proměnné
Pak je potřeba dát si pozor na řadu věcí. Například jestli ty výrazy mohou obsahovat volání funkcí (pow, abs, sin, …), budeš ten kód muset hodně pečlivě analyzovat a provádět nějaký whitelisting funkcí. V diskuzi v manuálu něco takového je, ale to je hodně slabé řešení. Na opravdu neprůstřelnou kontrolu by asi byl nejlepší tokenizer. Taky ten kód musí být bez syntaktických chyb… kolem a kolem, napsat si parser aritmetických výrazů mi připadá zábavnější a možná i jednodušší, než takovéhle kejkle. Ale to už je na tobě :-)
1.7.2009 16:38 voda | skóre: 28
Rozbalit Rozbalit vše Re: PHP include obsahu proměnné
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi hledáte funkci eval.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.