Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

12.01.2007, 11:37
|
|
Тут может быть ваша реклама.
Регистрация: 30.07.2005
Сообщений: 1,243
Провел на форуме: 4520553
Репутация:
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..
|
|
|

12.01.2007, 11:55
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
k1b0rg, спасибо, посмеялся.
А теперь немного подумай. Головой.
Предположим, в движке обрабатываем ее как:
1) ...как строку. Тогда причем int/intval() ?
2) ...как число. Тогда туда и не должны попасть такие значения, а int/intval() обрежет только неправильные.
|
|
|

14.01.2007, 01:29
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
nerezus молодца! реальн клево отписал! я даж посмеялся! хоть не впадлу читать было, т.к. не много)))
а ваше я обычно все параметры передоваемые в запрос беру в ' ' а в самих параметрах экранирую ' и всегото!))
|
|
|

14.01.2007, 01:40
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
а ваше я обычно все параметры передоваемые в запрос беру в ' ' а в самих параметрах экранирую ' и всегото!))
ну дык так и надо делать правильно.
mysql_escape_string поможет правильно передать любую строку в базу данных, а intval поможет передать число
|
|
|

14.01.2007, 01:50
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
а не прощи ли сделать
PHP код:
$str=str_replace("'","\'",$str);
|
|
|

14.01.2007, 11:51
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
Конечно нет.
запрос можно испортить.
А эта функция экранирует еще и другие символы.
|
|
|

14.01.2007, 19:32
|
|
Участник форума
Регистрация: 05.02.2006
Сообщений: 168
Провел на форуме: 749524
Репутация:
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);
// вывод результата
}
}
?>
вот.
|
|
|

14.01.2007, 23:27
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
Почти верно.
Почему почти?
$val = isset($_GET['val']) ? (int)$_GET['val'] : 0;
|
|
|

15.01.2007, 00:16
|
|
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме: 4610226
Репутация:
1332
|
|
от инекции да. все верно.
>>но это не секурити-дырка.
бебе от инекции да, но секурити  тк можно получить раскрытие пути. чем не бага.
|
|
|

15.01.2007, 10:20
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
ZaCo, а если у меня еррор_репортенг по нулям? 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|