![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Flier |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.6.2007 Репутация: нет Всего: нет |
Что лучше ипользовать для экранирования опасных символов, педающихся из формы (текстовые поля).?
escapeshellcmd - вырезает все, что можно, потом можно введенный в форму текст и не узнать. escapeshellarg - ставит кавычки ... Есть ли что-нибудь хорошее и подходящее в ПХП или юзать str_replace()? Кто, что для таких целей использует? |
|||
|
||||
| GiV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
http://ru2.php.net/mysql_escape_string
escapeshellcmd и escapeshellarg используются при работе из PHP с shell Однако экранирование это только вершина айсберга, если лезть глубже то на данные приходящие от пользователя можно накладывать больше ограничений. |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
Если только для записи или поиска в БД, то никаких других ограничений не нужно. Очень хорошо тема раскрыта в PHP FAQ: \"Кавычки \". Cоставление запросов mysql, слеши, экранирование кавычек. -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| NightmareZ |
|
||||||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 2 Всего: 13 |
На меня, наверное, сейчас будут нападать по поводу моего говнокода, но всё же.... Я тоже долбался с экранированием символов и прочими сопутствующими проблемами.... В конце концов написал себе пару функций.... Может, конечно, оно через одно место и медленно будет работать, но меня пока во всём устраивало.
Это сообщение отредактировал(а) NightmareZ - 20.8.2007, 12:57 -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
||||||
|
|||||||
| GiV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 4 Всего: 9 |
Чуть больше года назад, гудело и гремело здесь: http://ru2.php.net/manual/ru/ref.filter.php
Вещь приятная и полезная, а главное на уровне ядра/модуля. Но для применения надо либо отдельную обертку писать, либо в коде хорошо подумав |
|||
|
||||
| SelenIT |
|
||||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
Не сразу. Сначало спрошу: NightmareZ, от чего этот код должен защищать? От SQL-инъекции? От XSS-атаки? От дурного глаза? От всего на свете?
Ну ещё бы! Такое чудо нужно во что бы то ни стало сохранить для потомков и бережно передать в музей! Имхо, это надо бы в юмор... ;) -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
||||
|
|||||
| console |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 2 Всего: 3 |
)) Вообще странный код )))))
Это похоже стоило юзать с strtr() ? |
||||
|
|||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Да, звучит забавно. Но насколько я понял, суть здесь заключается в том, что если по ошибке или специально (если обрезать не требуется) было передано значение -1, то ничего не делать. Своего рода искусственный аналог опционального параметра. Т.е. если передать null и сделать проверку if ($len === null). По самой функции: 1. Зачем сначала перекодировать, а затем из-за того что длина изменилась обрезать строку собственной функцией? Не проще сначала обрезать, а затем уже перекодировать? Тогда надобность в первой функции отпадет вообще. 2. Зачем цикл в 118 строке, когда есть такая замечательная функция, как strtr()? 3. 103ия строка - это опять же лишняя работа. Зачем менять "\r\n" на "\n", а затем "\n" на "<br />", когда можно одним махом nl2br()? А сам стиль хороший и логика понятна, но реализовать можно было намного проще. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |