Достаточно ли FILTER_SANITIZE_STRING, чтобы избежать SQL-инъекций и XSS-атак? - PullRequest
3 голосов
/ 15 июня 2011

Я использую PHP 5 с классом SQLite 3 , и мне интересно, достаточно ли использовать встроенную в PHP фильтрацию данных с флагом FILTER_SANITIZE_STRING, чтобы остановить внедрение SQL и XSS атаки.

Я знаю, что могу взять большой уродливый класс PHP, чтобы отфильтровать все, но мне нравится, чтобы мой код был максимально чистым и коротким.

Пожалуйста, сообщите.

Ответы [ 5 ]

2 голосов
/ 15 июня 2011

Класс SQLite3 позволяет подготовить операторы и привязать к ним значения. Это было бы правильным инструментом для запросов к вашей базе данных.

Что касается XSS, то это совершенно не связано с вашим использованием SQLite.

1 голос
/ 15 июня 2011

Никогда не стоит использовать одну и ту же функцию очистки как для XSS, так и для SQLI.Для XSS вы можете использовать htmlentities для фильтрации пользовательского ввода перед выводом в HTML.Для SQLI на SQLite вы можете либо использовать подготовленные операторы (что лучше), либо использовать escapeString для фильтрации ввода пользователя перед построением SQL-запросов с ними.

0 голосов
/ 22 декабря 2012

Если вы просто пытаетесь создать простую форму и не хотите вводить какие-либо тяжелые или даже легкие фреймворки, тогда используйте php filters + и используйте PDO для базы данных.Это должно защитить вас от всего, кроме подделок межсайтовых запросов.

0 голосов
/ 15 июня 2011

Если вы недостаточно доверяете своему пониманию проблем безопасности, чтобы задавать этот вопрос, как вы можете доверять кому-то здесь, чтобы дать вам хороший ответ?

Если вы идете по путиубирая ненужные символы, рано или поздно вы будете убирать символы, которые пользователи хотят напечатать.Лучше кодировать для конкретного контекста, в котором используются данные.

Проверьте OWASP ESAPI , он содержит множество функций кодирования.Если вы не хотите использовать эту большую библиотеку, посмотрите, что делают функции, и скопируйте соответствующие части в вашу кодовую базу.

0 голосов
/ 15 июня 2011

Я думаю, что этого достаточно, чтобы защитить ваши строковые данные, но есть много других доступных опций, которые вы можете выбрать.Например, другие библиотеки увеличат время обработки вашего приложения, но помогут вам обрабатывать / анализировать другие типы данных.

...