Вы не зашли.
POFIGISST, смотри пост #1018.
я бы не советовал это использовать. поддержи не будет, комментариев нет, стиль кода не PEAR и не Zend
Писал с расчетом на защиту от всякой гадости в $_GET['dir'] в моем зц
Норм?
еще чуть наговнокодил
Код:
span style="color: #0000BB"><?phpfunction url_dir($dir=0) { return str_replace('//', '/', preg_replace(array('/[^a-z0-9\_\-\/]/i', '/\/{3,}/'), array(null, '/'), $dir)); }/*- - До - -В адресной строкеhttp://test.ru/dls/?dir=..///////.../'////Images///Wallpapers/128x128///../Screensavers/%D1%8D%D0%AD%D0%AD%E2%84%'"дп\\\\\%22/240x320>>- - После - -В переменной $dir будет /Images/Wallpapers/128x128/Screensavers/240x320*/?> |
Отредактировано tipsun (2011.04.22 23:11)
бред, 100 раз уже сказано, что нет функций "и от запора, и от поноса". можно найти 100500 случаев, когда эти функции пытающиеся защитить от всего неприменимы.
Я там еще поговнокодил, вроде от запоропоноса должна помочь.
- - - -
Если нет, то как тогда?
Так:
Код:
span style="color: #0000BB"><?php$dir = empty($_GET['dir']) ? '.' : htmlspecialchars(trim($_GET['dir']), ENT_QUOTES);if(false !== strpos($dir, '..') or false !== strpos($dir, '/.')) { header('Location: ?dir='); //знаю про полный адрес, потом укажу у себя exit(); }?> |
Отредактировано tipsun (2011.04.22 23:11)
что это вообще такое? предлагаешь это на форуме вставить например, штоля?
tipsun написал:
Писал с расчетом на защиту от всякой гадости в $_GET['dir'] в моем зц
Норм?
Ну при opendir/readdir без всякой защиты могут ведь прописать /. или /../../ и посмотреть папки, которые находятся выше. Я этого хочу избежать.
+
папки со спец символами я всё равно использовать не буду, значит спец символы тоже исключаем из принятых из $_GET['dir'] данных.
А как же файлы, там же точка и расширение. Ну сделаю прямую ссыль на файлы, а на папки как обычно ?dir=/audio/mp3/
Отредактировано tipsun (2011.04.23 08:08)
ну так это очень кастомная вещь. htmlspecialchars там не нужен. и strpos($dir, '/.') тоже не понятно зачем