HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #31  
Старый 12.01.2007, 11:37
k1b0rg
Тут может быть ваша реклама.
Регистрация: 30.07.2005
Сообщений: 1,243
С нами: 10937126

Репутация: 1316


По умолчанию

int и intval() ограничены -2147483648 до 2147483648

а числа большие этому, предлагаешь уже строкой брать? тогда ты пролетишь mysql_real_escape_string тебе не поможет, взломают так что ноги согнутся...




$id=is_numeric($_GET['id'])?$_GET['id']:0;

тебя опять эта запись не устроит? )) is_numeric возьмет любое число)

Последний раз редактировалось k1b0rg; 12.01.2007 в 11:53..
 
Ответить с цитированием

  #32  
Старый 12.01.2007, 11:55
nerezus
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами: 11444066

Репутация: 2290


По умолчанию

k1b0rg, спасибо, посмеялся.

А теперь немного подумай. Головой.
Предположим, в движке обрабатываем ее как:
1) ...как строку. Тогда причем int/intval() ?
2) ...как число. Тогда туда и не должны попасть такие значения, а int/intval() обрежет только неправильные.
 
Ответить с цитированием

  #33  
Старый 14.01.2007, 01:29
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
С нами: 10578566

Репутация: 1228


По умолчанию

nerezus молодца! реальн клево отписал! я даж посмеялся! хоть не впадлу читать было, т.к. не много)))

а ваше я обычно все параметры передоваемые в запрос беру в ' ' а в самих параметрах экранирую ' и всегото!))
 
Ответить с цитированием

  #34  
Старый 14.01.2007, 01:40
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
С нами: 10721066

Репутация: 4360


По умолчанию

Цитата:
а ваше я обычно все параметры передоваемые в запрос беру в ' ' а в самих параметрах экранирую ' и всегото!))
ну дык так и надо делать правильно.
mysql_escape_string поможет правильно передать любую строку в базу данных, а intval поможет передать число
 
Ответить с цитированием

  #35  
Старый 14.01.2007, 01:50
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
С нами: 10578566

Репутация: 1228


По умолчанию

а не прощи ли сделать
PHP код:
 $str=str_replace("'","\'",$str); 
 
Ответить с цитированием

  #36  
Старый 14.01.2007, 11:51
nerezus
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами: 11444066

Репутация: 2290


По умолчанию

Конечно нет.
запрос можно испортить.
А эта функция экранирует еще и другие символы.
 
Ответить с цитированием

  #37  
Старый 14.01.2007, 19:32
p-range
Участник форума
Регистрация: 05.02.2006
Сообщений: 168
С нами: 10663526

Репутация: 715
По умолчанию

Я уже писал в подобной теме. Зачем создавать громоздкие функции для экранирования запрещенных символов, если все уже давно придумано за нас.

вот пример безопасного кода:
Код:
<?php
$val = (int)$_GET['val'];
$val = mysql_escape_string($val);
$q = mysql_query("SELECT id,name,etc FROM table WHERE val = '$val'");
if (!$q)
{
	echo '<br>Неверное значение переменной $val';
}
	else
{
while ($a = mysql_fetch_array($q))
{
	$id = $a['id'];
	$name = $a['name'];
	$etc = $a['etc'];
	$name = htmlspecialchars($name);
	$etc = htmlspecialchars($etc);
	// вывод результата
}
}
?>
вот.
 
Ответить с цитированием

  #38  
Старый 14.01.2007, 23:27
nerezus
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами: 11444066

Репутация: 2290


По умолчанию

Почти верно.
Почему почти?
$val = isset($_GET['val']) ? (int)$_GET['val'] : 0;
 
Ответить с цитированием

  #39  
Старый 15.01.2007, 00:16
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
С нами: 10994966

Репутация: 1332


По умолчанию

от инекции да. все верно.
>>но это не секурити-дырка.
бебе от инекции да, но секурити тк можно получить раскрытие пути. чем не бага.
 
Ответить с цитированием

  #40  
Старый 15.01.2007, 10:20
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
С нами: 10721066

Репутация: 4360


По умолчанию

ZaCo, а если у меня еррор_репортенг по нулям?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.