Защита!От взлома сайта.
Автор ProtoTeeP, 13.07.2007, 08:28
#4
Отправлено 13.07.2007, 12:33:11
Если я знаю, какие данные должны прийти - например, числовое значение, то делаю проверку Регекспом.
Если не знаю, но должно прийти что-то связанное с базой, то делаю mysql_real_escape_string.
Иногда надо просто вставить пришедшие значения обратно в поля - тогда htmlspecialchars и stripslashes. Кстати, когда эксперементировал, то в некоторых случаях обнаружил, что обратные слеши остаются, не все, а только самые стойкие. В итоге пришлось использовать stripslashes два раза подряд, для правильной работы.
Если не знаю, но должно прийти что-то связанное с базой, то делаю mysql_real_escape_string.
Иногда надо просто вставить пришедшие значения обратно в поля - тогда htmlspecialchars и stripslashes. Кстати, когда эксперементировал, то в некоторых случаях обнаружил, что обратные слеши остаются, не все, а только самые стойкие. В итоге пришлось использовать stripslashes два раза подряд, для правильной работы.
#6
Отправлено 13.07.2007, 19:33:38
Основной принцип защиты веб приложений заключается в том, чтобы свести к минимуму прямую свзяку запроса пользователя с запросами данных самого приложения.
А ту часть, которая всеже останется подвергать фильтрам и проверкам.
Ну и конечно не забывать читать бактраки и следить за апдейтами
А ту часть, которая всеже останется подвергать фильтрам и проверкам.
Ну и конечно не забывать читать бактраки и следить за апдейтами
#7
Отправлено 17.07.2007, 01:23:35
Кстати у меня вот вопрос насчет безопасности. Или насчет совместимости. Короче разработчики РНР подумали что старый метод передачи данных из форм НТМГ небезопасен и теперь надо переменные писать так: $_POST["$variable"] а не просто $variable. Тут понятно, а вот как быть с массивами? Раньше было просто-$array["index"]. А сейчас?
#8
Отправлено 17.07.2007, 05:49:51
Кстати у меня вот вопрос насчет безопасности. Или насчет совместимости. Короче разработчики РНР подумали что старый метод передачи данных из форм НТМГ небезопасен и теперь надо переменные писать так: $_POST["$variable"] а не просто $variable. Тут понятно, а вот как быть с массивами? Раньше было просто-$array["index"]. А сейчас?
Суперглобальная переменная $_POST тоже является массивом, обратится к вложенному массиву можно посредством $_POST['varname'][индекс];
либо
$array = $_POST['varname'];
var_dump($array);
Можно также включить опцию register_globals в php.ini, или в .htaccess php_value register_globals On для совместимости.
#16
Отправлено 23.07.2007, 20:49:56
Только такого взлома как БД нету. Есть взломы через SQL инъекции. Если вы говорите про них то для защиты на 100% достаточно использовать всего две функции, правда при большом кол-ве запросов нагрузка небольшая, но есть.Против взлома БД, стараюсь использовать ORM библиотеки, пусть их разработчки пишут всякие эскейпы.
Количество пользователей, читающих эту тему: 1
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0