Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: хранение сообщений

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: sql inj
kexs
Отправлено: 10 Октября, 2010 - 14:19:22
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2010  
Откуда: Россия


Помог: 0 раз(а)




Сталкнулся с проблемой. При написании отправки сообщений текст сообщения обрабатываю urlencode, но вместе с ней nltobr не работает, как максимально оптимально и защищённо кодировать текст сообщений, чтобы сохранялись переносы строк?

(Отредактировано автором: 10 Октября, 2010 - 14:20:24)

 
 Top
Uchkuma
Отправлено: 11 Октября, 2010 - 11:03:45
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




urlencode предназначен для кодирования строки в url. Читайте описание функции.
Что значит "защищённо кодировать текст сообщений"? Отправляйте методом post и все.
 
 Top
kexs
Отправлено: 11 Октября, 2010 - 17:51:59
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2010  
Откуда: Россия


Помог: 0 раз(а)




Uchkuma пишет:
urlencode предназначен для кодирования строки в url. Читайте описание функции.
Что значит "защищённо кодировать текст сообщений"? Отправляйте методом post и все.

неправильно немного выразился, для фильтрации от sql и xss инъекций хотел спросить как лучше делать.
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. function filter_message($var) {
  4. $var = strip_tags($var);
  5. $var = htmlspecialchars($var);
  6. $array = array("\r\n", "\n\r", "\n", "\r");
  7. $var = str_replace($array, "<br />", $var);
  8. $var = str_replace("\"","“", $var);
  9. $var = str_replace(""","", $var);
  10. $var = str_replace("'","‘", $var);
  11. $var = str_replace("\'","‘", $var);
  12. return $var;
  13. }
  14.  

немного набросал что хотел сделать, но если что лишнее или чего то нехватает подправте немног

(Отредактировано автором: 11 Октября, 2010 - 17:53:16)

 
 Top
OrmaJever Модератор
Отправлено: 11 Октября, 2010 - 18:06:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Если ты боишся что в сообщении могут быть кавычки или ещё чтото то можно воспользоватся функцией $mess = addslashes($mess); или просто позаменять все такие символы str_replace() как ты уже написал выше)


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Uchkuma
Отправлено: 11 Октября, 2010 - 18:23:51
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




mysql_real_escape_string
Не изобретайте велосипед.
 
 Top
kexs
Отправлено: 11 Октября, 2010 - 18:28:24
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2010  
Откуда: Россия


Помог: 0 раз(а)




с mysql_real_escape_string и addslashes добавляются \ в сообщения, эт некрасиво
 
 Top
Yakim
Отправлено: 11 Октября, 2010 - 19:09:41
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Янв. 2010  
Откуда: Симферополь


Помог: 0 раз(а)




stripslashes перед выводом
 
 Top
kexs
Отправлено: 11 Октября, 2010 - 19:17:59
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2010  
Откуда: Россия


Помог: 0 раз(а)




а если пользователи в сообщениях будут сами использовать конструкцию \' или \\ то stripslashes изменит текст, что тоже весьма некрасиво..., вот как вывести 1 в 1 то что ввели с фильтрацией от инъекций

(Отредактировано автором: 11 Октября, 2010 - 19:21:09)

 
 Top
Uchkuma
Отправлено: 11 Октября, 2010 - 19:27:03
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




kexs пишет:
с mysql_real_escape_string и addslashes добавляются \ в сообщения, эт некрасиво
Yakim пишет:
stripslashes перед выводом
Какие "stripslashes перед выводом"??? Добавьте сообщение в базу и посмотрите.
(Добавление)
kexs пишет:
вот как вывести 1 в 1 то что ввели с фильтрацией от инъекций
Вам дали ответ mysql_real_escape_string. Вперед! Магические кавычки, само собой, должны быть выключены.
 
 Top
kexs
Отправлено: 11 Октября, 2010 - 19:36:02
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2010  
Откуда: Россия


Помог: 0 раз(а)




Перед отправкой вводил тест:
Цитата:
кавычка '
двойная "


$var = mysql_real_escape_string($var);
Отправило:
Цитата:
кавычка \' двойная \"

(Отредактировано автором: 11 Октября, 2010 - 19:38:27)

 
 Top
Uchkuma
Отправлено: 11 Октября, 2010 - 19:42:18
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Отправило. А в базу что занеслось?
 
 Top
kexs
Отправлено: 11 Октября, 2010 - 19:44:41
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2010  
Откуда: Россия


Помог: 0 раз(а)




то что и отправило то и занесло, и вывело в сообщении с "\"..
 
 Top
Мелкий Супермодератор
Отправлено: 11 Октября, 2010 - 19:53:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




kexs, магические кавычки в пень вырубите. (Magic Quotes)


-----
PostgreSQL DBA
 
 Top
Инклуд
Отправлено: 11 Октября, 2010 - 20:12:10
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Окт. 2010  
Откуда: Россия


Помог: 0 раз(а)




Я бы посоветовал с помощью регулярных выражений проверять на разрешённые символы, а все остальные подчищать ;)
 
 Top
Uchkuma
Отправлено: 11 Октября, 2010 - 20:19:44
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Инклуд, т.е. кавычки будут запрещенными символами, ага.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB