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
Форумы портала PHP.SU :: Версия для печати :: Безопасный ввод текста [3]
Форумы портала PHP.SU » » Вопросы новичков » Безопасный ввод текста

Страниц (7): « 1 2 [3] 4 5 6 7 »
 

31. LIME - 27 Июля, 2012 - 12:42:55 - перейти к сообщению
ну у тебя же на все свой взгляд))
дядькам не веришь))
можно причем легко даже в браузере
32. просто даня - 27 Июля, 2012 - 12:44:24 - перейти к сообщению
короче просто так же филтровать и селект через preg_match как и остольные поля в оброботчике формы при регистрации и в личном кабинете? так да??)
33. pvm741 - 27 Июля, 2012 - 18:00:40 - перейти к сообщению
я например делаю так валидацыю, но возникла одна проблема, в некоторое текстовые поля надо ввести название или имя в кабычках, то етот метод вводит во базу &quot Название &quot

$value = htmlspecialchars($value);
$value = mysql_real_escape_string($value)
if (get_magic_quotes_gpc()) {$value = stripslashes(trim($value));}
if (!preg_match("|^[0-9]+$|",$str1)) {$error=1;}
if($error==1) {exit('Date validation!!! Try again!');}
// else {SQL запрос на ввод данныx в базу}

И когда експортируеш базу данных в excel остаются &quot вместо двунарных кобычек. Что делат? Да и &quot занимает дополнителное место в varchar полях на базе.
34. LIME - 27 Июля, 2012 - 18:11:28 - перейти к сообщению
http://php.su/articles/?cat=phpd...;page=010#part_4 часть 4
параметры передаются как переменные и кавычки можно не экранить и не преобразовывать в мнемоники
35. armancho7777777 - 27 Июля, 2012 - 18:14:03 - перейти к сообщению
Ответ касается обоих случаев:
составьте массив допустимых предпологаемых значений (так называемый белый список)
и проверяйте на соответствие при получении.
И конечно же до обработки функцией htmlspecialchars()
Пример:
PHP:
скопировать код в буфер обмена
  1. $whiteList = array('Москва' => 1, 'Питер' => 1, 'Лондон' => 1);
  2.  
  3. if(!isset($whiteList[$_POST['sity']])) exit('NO !!!');

Массив можно создать из полученных значений соответствующих полей таблицы БД.
36. pvm741 - 27 Июля, 2012 - 18:19:23 - перейти к сообщению
LIME пишет:
http://php.su/articles/?cat=phpd...;page=010#part_4 часть 4
параметры передаются как переменные и кавычки можно не экранить и не преобразовывать в мнемоники


сылка неоткрываеся
37. LIME - 27 Июля, 2012 - 18:19:59 - перейти к сообщению
ну придумай что-нибудь))
38. pvm741 - 27 Июля, 2012 - 18:25:40 - перейти к сообщению
armancho7777777 пишет:
Ответ касается обоих случаев:
составьте массив допустимых предпологаемых значений (так называемый белый список)
и проверяйте на соответствие при получении.
И конечно же до обработки функцией htmlspecialchars()
Пример:
PHP:
скопировать код в буфер обмена
  1. $whiteList = array('Москва' => 1, 'Питер' => 1, 'Лондон' => 1);
  2.  
  3. if(!isset($whiteList[$_POST['sity']])) exit('NO !!!');


тут не тот случий, в текстовые поля нужно будет ввести любой текс: буквы, зыфры, знаки препинания .,;-+- и конечно двухнарные кобычки "
Вот функцыя htmlspecialchars мне наделает проблем, когда я вытаскивыюdaнные в txt фаил или еxcel. Да и если слова состоит из 50 симболов, то в базу литят дополнителные симболы если есть кобычки в словаx &quotслово&quot
39. LIME - 27 Июля, 2012 - 18:27:08 - перейти к сообщению
ехехех
скопируй ссылку и убери редирект
40. pvm741 - 27 Июля, 2012 - 18:29:17 - перейти к сообщению
LIME пишет:
ехехех
скопируй ссылку и убери редирект


уже разобрался
41. armancho7777777 - 27 Июля, 2012 - 18:35:10 - перейти к сообщению
pvm741, функция htmlspecialchars() используется при выводе:

а при записи в БД:
PHP:
скопировать код в буфер обмена

Это для начала.
Ну а далее, читайте о mysqli.
Ссылку Вам уже скинули.
42. tuareg - 27 Июля, 2012 - 18:39:57 - перейти к сообщению
Да не будет профита от использования prepare statement. Даже наоборот хуже будет. Не для этого они предназначены.(Не совсем для этого Улыбка ). Вам вполне хватит mysql_real_escape_string().
43. LIME - 27 Июля, 2012 - 18:42:39 - перейти к сообщению
tuareg а разве экранирование не сохранится при экспорте? а?
и чем хуже будет препаре?
44. tuareg - 27 Июля, 2012 - 18:50:48 - перейти к сообщению
LIME пишет:
а разве экранирование не сохранится при экспорте?

Сейчас еще разик тему прочитаю. Улыбка
LIME пишет:
и чем хуже будет препаре?

Принцип работы в общих чертах. и разница
Простой запрос. Сервер mySQL получил строку распарсил ее и выполнил.
При препере он парсит строку 2 раза. Сначала при получении и потом при сохранении.
Теперь дальше. Это не страшно когда следом(в этом же соединении) идет аналогичный запрос. Тогда да профит будет особенно если запросов много (цикличный запрос). Но если это только один запрос, то просто трата ресурсов сервера. Причем после окончания соединения (скрипт php отработал), все сохраненные prepare скидываются. Это в общих чертах, мог где-то напутать с терминами.
45. LIME - 27 Июля, 2012 - 18:55:52 - перейти к сообщению
ну это все понятно но как еще занести кавычки безопасно?
к тому же это предложение для ознакомления
к тому же не думаю что намного напрежется сервер)
пусть тс думает

 

Powered by ExBB FM 1.0 RC1