Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Укажите на ошибки в проверке входных данных из формы / 17 сообщений из 17, страница 1 из 1
18.10.2013, 18:11
    #38433331
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
кусок кода функции:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
//.....................
if ((!empty($_REQUEST['preparate'])) && (!empty($_REQUEST['city'])) && (!empty($_REQUEST['category'])))
{
/* preparate protect*/
$preparate = strip_tags($_REQUEST['preparate']);
$patern = array("'",",","+","/","\\","@","|",":","?","union","and","or","$","{","}","&","#","%","`","Like",";","*");
$preparate = trim(str_replace($patern,"", strip_tags($preparate)));
if (!$preparate) return false;  // на момент написания нету возможности проверить, но проверка на пустую строку "" работает только так, ни isset ни empty не выдавали желаемый результат (данные брались из формы html)
/* city protect*/
$city = intval($_REQUEST['city']);
if(!preg_match("/^[1-9][0-9]*$/", $city)) return false;
/* category protect*/
$category=Array();
$category=join(',',$_REQUEST['category']);
//......................


вот такой код наковырял...
вроде с $preparate и $city все в норме. в плане защиты (если я не прав - подскажите)
осталось проверить $category - вот с этой проверкой у меня небольшие затруднения...
как проверить 100% на все возможное этот массив данных (возможные варианты данных только 1,2,3,4,5,6)
...
Рейтинг: 0 / 0
18.10.2013, 18:14
    #38433337
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
авторif (!$preparate) return false; // на момент написания нету возможности проверить, но проверка на пустую строку "" работает только так, ни isset ни empty не выдавали желаемый результат (данные брались из формы html)
ты сделал мой день.
...
Рейтинг: 0 / 0
18.10.2013, 18:15
    #38433338
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
автор$city = intval($_REQUEST['city']);
if(!preg_match("/^[1-9][0-9]*$/", $city)) return false;

песня. просто песня.
...
Рейтинг: 0 / 0
18.10.2013, 18:18
    #38433343
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
авторкак проверить 100% на все возможное этот массив данных (возможные варианты данных только 1,2,3,4,5,6)
if !array_diff ( $category, array(1,2,3,4,5,6) ) return false


дальше начинаем думать что будет если тебе там пару мегабайт пришлют.
...
Рейтинг: 0 / 0
18.10.2013, 18:24
    #38433347
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
ScareCrowты сделал мой день.
я очень рад)

Код: php
1.
if (empty($preparate)) return false; // вроде работает


сказывается недосыпание)
...
Рейтинг: 0 / 0
18.10.2013, 18:27
    #38433351
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
ScareCrowавтор$city = intval($_REQUEST['city']);
if(!preg_match("/^[1-9][0-9]*$/", $city)) return false;

песня. просто песня.
я не понял, здесь все нормально??
возможные входные данные: числа от 1 до 200, исключая 0
но я ограничения по значению не писал (хотя кстати надо)
...
Рейтинг: 0 / 0
18.10.2013, 18:28
    #38433352
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
авторвозможные входные данные: числа от 1 до 200
что правда? и это правда работает?
...
Рейтинг: 0 / 0
18.10.2013, 18:29
    #38433355
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
ты еще попробуй
if ('' === $preparate)

тебя ждет много нового.
...
Рейтинг: 0 / 0
18.10.2013, 18:34
    #38433362
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
ScareCrowты еще попробуй
if ('' === $preparate)

тебя ждет много нового.

=== сравнение по значению и типу данных
ваше выражение проверяет на пустую строку?
...
Рейтинг: 0 / 0
18.10.2013, 18:35
    #38433365
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
ScareCrowавторвозможные входные данные: числа от 1 до 200
что правда? и это правда работает?
конкретно 1 до 200 не работает
работает от 1 до ........)
...
Рейтинг: 0 / 0
18.10.2013, 19:27
    #38433426
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
Код: php
1.
2.
3.
4.
if((!array_diff ( $_REQUEST['category'], array(1,2,3,4,5,6) ))==false) return false;
$category=Array();
$category=join(',',$_REQUEST['category']);
//вот так сделал для category - работает
...
Рейтинг: 0 / 0
18.10.2013, 19:31
    #38433431
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
Part 2)
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
	mysql_connect("localhost", "root", "") or die (mysql_error ());
	mysql_select_db("xxx") or die(mysql_error());
	mysql_set_charset( 'Utf8' ); 
	$preparate = "'".mysql_real_escape_string($preparate)."'";  
	if(($rs = mysql_query($strSql))===0) return false;
	else if(($num_rows =  mysql_num_rows($rs)) ===0) return false;
	else while($row = mysql_fetch_assoc($rs)){
echo '<tr>';
echo '<td>'.$row['x'].'</td></br>';
echo '</tr>';
}
	mysql_close();
{



подскажите сдесь все "ровно"?
...
Рейтинг: 0 / 0
18.10.2013, 19:44
    #38433439
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
vip-y, вот сам заметил)
else походу здесь лишнее, т.к. при return ф-я прекратит выполнение
...
Рейтинг: 0 / 0
18.10.2013, 19:54
    #38433447
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
vip-y,

Попытки защититься от скули при помощи str_replace или preg_replace это просто трата вашего драгоценного времени. Для данных целей в пыхе существуют соответствующие функции, используйте либо их либо, что еще лучше, переходите к изучению PDO ($preparate). Также было бы неплохо познакомиться с функциями для работы с массивами, особенно array_slice и in_array ($category). С $city простая арифметика:

Код: php
1.
2.
$city = isset($_REQUEST['city']) ? $intval($_REQUEST['city']) : 0;
if ($city<1 || $city>200) return false;
...
Рейтинг: 0 / 0
18.10.2013, 19:59
    #38433449
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
phpz,
спасибо за совет
...
Рейтинг: 0 / 0
19.10.2013, 00:22
    #38433651
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
автор$city = isset($_REQUEST['city']) ? $intval($_REQUEST['city']) : 0;
$_REQUEST['city'] = 100xdfgsrth;
...
Рейтинг: 0 / 0
19.10.2013, 12:02
    #38433807
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Укажите на ошибки в проверке входных данных из формы
ScareCrowавтор$city = isset($_REQUEST['city']) ? $intval($_REQUEST['city']) : 0;
$_REQUEST['city'] = 100xdfgsrth;
Получаемое на выходе значение (100) не устраиваивает?!
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Укажите на ошибки в проверке входных данных из формы / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]