X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> PHP, Mysql: Фильтрация POST
Rombi
Rombi
Topic Starter сообщение 8.4.2014, 21:43; Ответить: Rombi
Сообщение #1


Достаточно ли будет пропустить POST сначала через htmlspecialchars, а потом в INSERT запросе указать mysql_real_escape_string($text)?


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ethoz
ethoz
сообщение 8.4.2014, 21:49; Ответить: ethoz
Сообщение #2


По моему скромному мнению mysql_real_escape_string будет достаточно, при жёстко указанной кодировке mysql_set_charset. А вывод можно пропускать через htmlspecialchars.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Rombi
Rombi
Topic Starter сообщение 8.4.2014, 21:52; Ответить: Rombi
Сообщение #3


ethoz, ты в программировании шаришь или наобум написал?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ethoz
ethoz
сообщение 8.4.2014, 21:58; Ответить: ethoz
Сообщение #4


Шарю, не на уровне профи конечно, но маны читаю внимательно. Я предложил свой варинт, как бы я написал. Для подтверждения/опровержения, подождём ответа человека с большой репой :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Rombi
Rombi
Topic Starter сообщение 8.4.2014, 22:03; Ответить: Rombi
Сообщение #5


Я тут подумал, твоя версия тоже имеет место быть)
Но вот как все-таки лучше делать? htmlspecialchars использовать перед сохранением или при выводе?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 8.4.2014, 22:05; Ответить: x64
Сообщение #6


функции имеют разное назначение
htmlspecialchars() нужен для вывода текста в html «как есть»
Код
$s = '<b>Hello!</b>';
echo $s;
echo htmlspecialchars($s);

первый вариант выведет: Hello!
второй: <b>Hello!</b>

при работе с запросами к mysql обрабатывать переменные нужно обязательно. и лучше использовать именно mysql_real_escape_string()

нужно ли использовать оба варианта? зависит от требуемого поведения. если данные в базе хранятся обработанными и готовыми для вывода в html (в варианте как есть, например, код), тогда есть смысл обработать обоими функциями. в противном случае, необходимо использовать только экранирование для mysql

Сообщение отредактировал x64 - 8.4.2014, 22:06


--------------------


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ethoz
ethoz
сообщение 8.4.2014, 22:09; Ответить: ethoz
Сообщение #7


Я бы сделал вывод через htmlspecialchars, чтоб в базе лежали не "искажённые" данные. Но если важно процессорное время, то наверное лучше делать при INSERT-е, т.к. не придётся при каждом SELECT-е делать htmlspecialchars одних и тех же данных.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WebAction
WebAction
сообщение 8.4.2014, 22:11; Ответить: WebAction
Сообщение #8


В плане защиты запроса хватит и mysql_real_escape_string, можно еще размер POST данных ограничить, если это позволительно :)
А если же брать вообще, то лучше от всего почистить, чего не должно быть в базе - все теги, нежелательные последовательности символов и тд.


--------------------
--тут может быть ваша реклама--


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Solonik
Solonik
сообщение 8.4.2014, 22:12; Ответить: Solonik
Сообщение #9


Попробуйте посмотреть в сторону подготовленных запросов например подробнее вот http://www.php.net/manual/ru/pdo.prepared-statements.php
Ну или как Вы написали mysql_real_escape_string() в принципе будет достаточно.

Сообщение отредактировал Solonik - 8.4.2014, 22:15


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
samovar
samovar
сообщение 9.4.2014, 11:13; Ответить: samovar
Сообщение #10


а лучше еще все запросы переформатировать другими переменными своими шаблонами, чтоб вообще ни кто не догадался
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Написать универсальный движок для сайтов на PHP
16 BuxarNET 1717 18.4.2021, 0:51
автор: kvsgeek
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
45 qpPeW 23542 17.3.2021, 18:38
автор: coremission
Открытая тема (нет новых ответов) Верстка + Разработка веб-приложений на базе: Yii Framework 2, Laravel, MySQL
Верстка,правка косяков/багов + другая работа. Доступные цены.
13 Fortunatus 14191 17.3.2021, 12:43
автор: henrybee
Открытая тема (нет новых ответов) Fullstack-разработчик на PHP
0 trueApp 477 15.2.2021, 15:52
автор: trueApp
Открытая тема (нет новых ответов) Поиск кодера в команду. PHP, Pyton. На постоянку.
7 getsend_mw 1624 3.2.2021, 21:15
автор: getsend_mw


 



RSS Текстовая версия Сейчас: 23.4.2021, 22:05
Дизайн