Autor Zpráva
kozlikar000
Profil *
Zdravím,

mám takový dotaz, zda by někdo věděl, jestli by šel obejít jednoduchý chat, pokud mám před jeho čtením takové zabezpečení..
resp. aby mi do chatu nemohl zapsat php script..

# read chat file
$chat = "chat.txt";

if(strstr($text, '<?php') || strstr($text, '<?') || strstr($text, '?>'))
{
echo "chybne znaky, nectu to";
} 
else
{
include($chat);
}

dá se to nějak obejít, popř. jak ? díky.
pcmanik
Profil
kozlikar000:
A ak by ti tam aj ten php kód napísal, tak čo sa stane? Pokiaľ ten súbor neprehánaš cez eval, tak to ničomu nevadí. A na vloženie textu zo súboru použi túto funkciu a nie include.
kozlikar000
Profil *
jo, jenze me zajima jestli se da toto osetreni obejit, aby mohl obsahovat $text nejaky php script ktery by prosel pod tim zabezpecenim.
pcmanik
Profil
kozlikar000:
Načo ale vymýšlať nejaké zabezpečenie, keď môžes použiť funkciu, ktorá je na to priamo určená?
A kde vlastne napĺňaš tú premennú $text?
kozlikar000
Profil *
nevim jak to mam jeste rict, me nezajima pointa, nebo nejake dalsi funkce.
me zajima, jestli se da udelat v $text nejaky script v php, aby tam prosel !
Jan Tvrdík
Profil
kozlikar000:
me zajima, jestli se da udelat v $text nejaky script v php, aby tam prosel !
Ano, je to možné. Např.

<script language="php">
    echo "foo";
</script>
Someone
Profil
kozlikar000:
Každopádně ten script nespustíš, protože to bude plain text v obyčejném textovém souboru.
Joker
Profil
kozlikar000:
Ono dělat include souboru s neznámým obsahem není tak úplně vhodné.

Mimochodem, pokud platí strstr($text, '<?php'), platí zároveň i strstr($text, '<?'), takže ta první podmínka je zbytečná.
Kromě způsobu [#6] Jan Tvrdík ještě v případě, že server má zapnuté asp_tags, jde:
<% echo "ahoj!"; %>
A jinak při vypnutí asp_tags a přidání podmínky strstr($text, '<script language="php">') bude pořád fungovat <script language='php'>, nebo varianty s více mezerami uvnitř, s tabulátory a podobně.
Jan Tvrdík
Profil
Someone:
Každopádně ten script nespustíš, protože to bude plain text v obyčejném textovém souboru.
To je jedno. Pokud ho načte přes include, tak se spustí. Na příponě nezáleží.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: