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 :: Безопасный ввод текста [6]

 PHP.SU

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


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

> Без описания
Hawkmoth
Отправлено: 01 Августа, 2012 - 19:51:08
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


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




LIME пишет:
а почему там комментарии отключены?
наверное надоело слушать что он идиот?



Копипаст первой ссылки из Яндекса был неудачной идеей.
Ссылку убрал. Рассматривайте предыдущий пост за моим авторством в качестве примера 'как не надо делать'

Улыбка
 
 Top
LIME
Отправлено: 01 Августа, 2012 - 19:54:29
Post Id


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


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


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




Hawkmoth пишет:
вместо ... - действия в случае некорректного ввода id, например, принудительное присваивание id=1.
если использовать подход данный мной выше в случае не валидного ID он будет установлен в 0
это можно учесть в логике
 
 Top
KingStar
Отправлено: 01 Августа, 2012 - 19:57:13
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




PHP:
скопировать код в буфер обмена
  1. $_GET['id'] = abs((int)$_GET['id']);
  2. if (empty($_GET['id'])) { $_GET['id'] = 1; }


и вся логика Подмигивание


-----
То что программа работает, не означает что она написана правильно!
 
 Top
tuareg
Отправлено: 01 Августа, 2012 - 19:58:15
Post Id


Участник


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


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




Если брать id страницы и т.д. То лучше вообще не дергаться, а оставить все как есть. Подставляем в запрос. Результата нет. Отдаем 404 NOT FOUND.
 
 Top
DelphinPRO
Отправлено: 01 Августа, 2012 - 19:58:40
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




LIME пишет:
DelphinPRO ну чтож не дал ответ?)
а думать кто будет? Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 01 Августа, 2012 - 19:58:47
Post Id


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


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


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




del

(Отредактировано автором: 01 Августа, 2012 - 20:03:21)

 
 Top
KingStar
Отправлено: 01 Августа, 2012 - 20:00:19
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




Следующие значения воспринимаются как пустые:

"" (пустая строка)
0 (целое число)
0.0 (дробное число)
"0" (строка)
NULL
FALSE
array() (пустой массив)
var $var; (переменная объявлена, но не имеет значения в классе)

http://php.net/manual/ru/function.empty.php

Подмигивание

(Отредактировано автором: 01 Августа, 2012 - 20:01:10)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
LIME
Отправлено: 01 Августа, 2012 - 20:01:03
Post Id


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


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


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




tuareg пишет:
Если брать id страницы и т.д. То лучше вообще не дергаться, а оставить все как есть.
injections велкам!!!
рассматривайте это как способ фильтрации целочисленный значений
(Добавление)
KingStar ЕЕЕепрст!!!
пршу прощения
пост удаляю
 
 Top
tuareg
Отправлено: 01 Августа, 2012 - 20:05:37
Post Id


Участник


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


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




LIME поясни...
PHP:
скопировать код в буфер обмена
  1.  
  2. $_GET['id']='инъекция';
  3. $id=(int)$_GET['id'];// $id=0 ??? Правильно
  4. $query='SELECT * FROM table WHERE id='.$id;
  5.  

И это будет выглядеть
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM TABLE WHERE id=0;
  3.  

Не?
 
 Top
LIME
Отправлено: 01 Августа, 2012 - 20:07:53
Post Id


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


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


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




tuareg перечитай выше
и даже если так?
 
 Top
KingStar
Отправлено: 01 Августа, 2012 - 20:09:52
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




PHP:
скопировать код в буфер обмена
  1. $_GET['id']='инъекция';
  2. $id = abs((int)$_GET['id']);
  3. if (empty($_GET['id'])) { $_GET['id'] = 1; }
  4.  
  5. $query = 'SELECT * FROM table WHERE id='.$id;


и будет


(Добавление)
LIME, здесь empty вообще скудно описан


-----
То что программа работает, не означает что она написана правильно!
 
 Top
tuareg
Отправлено: 01 Августа, 2012 - 20:12:02
Post Id


Участник


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


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





Я это и имел ввиду. Просто видно все переработал уже. Радость
 
 Top
pvm741
Отправлено: 04 Августа, 2012 - 17:39:12
Post Id


Новичок


Покинул форум
Сообщений всего: 59
Дата рег-ции: Июнь 2012  


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




нашол ту интересный сайт, там применяетсь функцыя sprintf, кто нибуд исплолзует?

http://neverlex[dot]com/cat/programm[dot][dot][dot]l-php-functions/

А как ето реализовать с INSERT и UPDATE? Если надо в базу ввести несколко переменных? Принцип какбы понятен, но как сделать компактную структуру кода, лень моного писать, да и в коде потом трудно разобратся?


public function GetItemsByParam($table, $param, $value)
{
$t = "SELECT * FROM $table WHERE $param = '%s'";
$query = sprintf($t, mysql_real_escape_string($value));
$result = $this->msql->Select($query);

return $result;
}
 
 Top
DelphinPRO
Отправлено: 04 Августа, 2012 - 18:23:33
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




для этого существует mysqli


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
pvm741
Отправлено: 04 Августа, 2012 - 19:37:18
Post Id


Новичок


Покинул форум
Сообщений всего: 59
Дата рег-ции: Июнь 2012  


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




DelphinPRO пишет:
для этого существует mysqli


а чем mysqli отлечяется от mysql ? С mysqli ненужno екраниравать данных применяя mysql_real_escape_string и sprintf?

я нашел вот токой вариант еще http://www.meekro.com/

(Отредактировано автором: 04 Августа, 2012 - 19:46:33)

 
 Top
Страниц (7): « 1 2 3 4 5 [6] 7 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB