|
|
|
| Здраствуйте,
написал свою CMS, но не сделал ничего для безопасности. На сайте есть много форм, отсутствует загрузка файлов. Сайт - доска объевлений. Какие могут быть угрозы сайту и как их избежать? | |
|
|
|
|
|
|
|
для: volodumir
(05.07.2011 в 13:10)
| | В первую очередь лучше переписать движок так, чтобы вывод данных на страницу (особенно данных от пользователя) и помещение данных в базу данных осуществлялись через небольшой набор функций - тогда работать будет проще.
Наибольшую угрозу могут представлять SQL-инъекции и XSS-инъекции. Я бы в первую очередь на них обратил внимание. | |
|
|
|
|
|
|
|
для: cheops
(05.07.2011 в 13:15)
| | Не могли бы вы здесь разместить этот набор функций? | |
|
|
|
|
|
|
|
для: volodumir
(25.07.2011 в 20:02)
| | $str = htmlspecialchars($str, ENT_QUOTES);
первый параметр - то что вы выводите из бд
при обращении к бд, если вы ищете запись через число (к примеру по id), то проверяйте число функцией intval($id)
ну а сама работа с бд... говорят PDO безопасна.
первую функцию мог написать с ошибкой, через телефон сижу. как буду дома, напишу более подробно... | |
|
|
|
|
|
|
|
для: DEM
(25.07.2011 в 21:49)
| | Подождем... | |
|
|
|
|
|
|
|
для: DEM
(25.07.2011 в 21:49)
| | Так, наконец-то добрался до ноута и нормального интернета...
Первая функция нужна для экранизирования некоторых символов. Если вы просто добавити в БД то, что написал пользователь, а потмо выведите, то, если пользователь пришёлт вам, что-то вроде <script>alert("!!!");</script>, то у вас окно алерта и выведится (а она еще ДАЛЕКО не самое страшное, что вам могут прислать). Второй параметр указывает, что мы так же экранизируем и кавычки (" и ').
Про intval думаю понятно, если вам попытаются подсунуть текст, а не число, то он его просто "превратит" в 0 и всё.
Теперь про работу с PDO... Вроде бы вот тут нормально всё описано: http://dandreev.com/blog/php-pdo-kratkoe-rukovodstvo/
Переходить на него (или MySQLi или другие классы) всё равно придётся, так как в PHP прекратили поддержку обычных mysql-функций (mysql_connect(), mysql_query и т.д.), а в следующих версиях их вообще уберут.
Особое внимание обратите на функции (методы) execute\prepare | |
|
|
|
|
|
|
|
для: DEM
(26.07.2011 в 22:00)
| | Спасибо за инфу, незнал, что поддержку функций mysql уберут | |
|
|
|
|