Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Безопасность в PHP

Ответить
Настройки темы
Безопасность в PHP

Пользователь


Сообщения: 67
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вопрос в следующем, как защититься от добавления пользователем в форму спец. символов, например
Код: Выделить весь код
",',<,>
и т.д.
А то можно бед наделать вот например что-то вроде
Код: Выделить весь код
'; drop table table;
Как с этим бороться. Есть идея просто заменять опасные символы:
Код: Выделить весь код
$a = ereg_replace("<","&lt;",$a);
$a = ereg_replace(">","&gt;",$a);
Но как представлю сколько у меня переменных аж плохо становится, да и как поступать с кавычками ведь $a = ereg_replace(""","/'",$a); боюсь не прокатит.


Отправлено: 11:31, 13-02-2004

 


Administrator


Сообщения: 25151
Благодарности: 3803

Профиль | Сайт | Отправить PM | Цитировать


knife
а если так?:
Код: Выделить весь код
 
if ( ereg ( "[<>&]+", $GLOBALS["form"]["имя формы"], $error_1 ) ) 
 * *{ 
 * * * *$error[0] .= $html.'( <FONT COLOR=какой-то>'.htmlspecialchars($error_1[0]).'</FONT> )<BR>'; 
 * * * *$error[1] = 1; 
 * *} 
 
return $error;
ну и предварительно описать эти эроры...

-------
FAQ по Windows 10 .::. Настройка Центра обновления в Windows 10 .::. Чистая установка Windows 10 – пошаговая инструкция


Отправлено: 11:40, 13-02-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Бороться с кавычками поможет функция addslashes (Возвращает строку со слэшами перед символами, которые должны быть закавычены в запросах БД и т.п.. Это одинарная ('), и двойная (" кавычки, обратный слэш/backslash (\)и NUL (NULL-байт)) и ее аналог addсslashes (тут стоит почитать мануалы, там фишки свои).
можно проверять тип приходящих данных - is_тип или насильно устанавливать тип - settype.
Можно создать ассоциативный массив в виде опасный_символ(ы)=>безопасный_символ(ы) и в цикле пройтись по данным функцией str_replace.
Ну и конечно регулярные выражения как на проверку так и на конвертирование.

Все вышеперечисленное не претендует на панацею .

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 17:24, 13-02-2004 | #3


Пользователь


Сообщения: 67
Благодарности: 0

Профиль | Отправить PM | Цитировать


Prisoner
Да, слышал об этих функциях, но к сожалению они не заменяют знаки html разметки, а это мне тоже необходимо.

Blast
А что так сложно, но за подсказку ф-ии htmlspecialchars() спасибо. Почитал о ней, оказалось с параметром ENT_QUOTES заменяет все кавычки, а также < & и >.  Вопрос в следующем, достаточно ли замены этих спец. символов чтобы себя обезопасить?

Отправлено: 10:07, 17-02-2004 | #4


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Цитата knife:
знаки html разметки
А что подразумевается под этим термином?
Цитата knife:
достаточно ли замены этих спец. символов чтобы себя обезопасить?
Нет . Стопроцентной защиты никогда не будет. Стоит фильровать также точку с запятой, а строковые данные sql запросов при инсертах и прочем заключать в кавычки.  Также стоит ловить символ "#" - комментарий в sql дабы не получить по носу когда будет выполнена лишь ЧАСТЬ запроса. В общем стоит почитать (мне тоже - забыл все ) синтаксис команд sql и поглядеть на камни под водой .

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 22:23, 17-02-2004 | #5



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Безопасность в PHP

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проблема с PHP(не передаются переменные из формы в PHP- скрипт) Kirander Вебмастеру 21 03-08-2009 01:11
C/C++ - [решено] PHP. Fatal error: Function name must be a string in /var/www/index.php on line 15 Artem-Samsung Программирование и базы данных 6 29-11-2008 18:37
Безопасность с ME Pingvi Microsoft Windows 95/98/Me (архив) 10 07-08-2008 17:12
[решено] Apache 2.2.8 + Php 5.2.6 + MySQL 5.0.51b (win) - не работает php v0f41k Вебмастеру 4 11-05-2008 22:08
PHP. Чтобы сделать на PHP? scorpion_2004 Вебмастеру 21 25-12-2006 22:58




 
Переход