|
|
|
| Встретилась такая функция:
function check_sql_inject()
{
$badchars = array("--","truncate","exec", ";","'","*", "drop", "-2", "-3","-4", "-5", "-6", "-7", "-8", "-9");
foreach($_POST as $value)
{
foreach($badchars as $bad)
{
if(strstr(strtolower($value),$bad)<>FALSE )
{
die('ERROR');
}
}
}
}
|
Насколько она эффективна и целесообразна ли вообще к применению? Что можно потенциально сделать отправляя данные из стоп-списка это функции в базу? И что в итоге необходимо и достаточно сделать для безопасности с данными записываемыми в базу, если в них код HTML? | |
|
|
|
|
|
|
|
для: Loneliness
(15.09.2010 в 22:02)
| | > Насколько она эффективна и целесообразна ли вообще к применению?
Даже не знаю как и сказать, это фигня. Полная хрень.
> И что вообще нужно сделать для безопасности с данными записываемыми в базу, если в них код HTML?
mysql_real_escape_string() | |
|
|
|
|
|
|
|
для: Loneliness
(15.09.2010 в 22:02)
| | Чушь | |
|
|
|
|
|
|
|
для: Loneliness
(15.09.2010 в 22:02)
| | к успеху идёте | |
|
|
|
|
|
|
|
для: Loneliness
(15.09.2010 в 22:02)
| | бред | |
|
|
|
|
|
|
|
для: Loneliness
(15.09.2010 в 22:02)
| | Используйте addslashes() и будет совет вам да любовь ;) | |
|
|
|
|
|
|
|
для: bishake
(16.09.2010 в 20:16)
| | Это 1/3 вариантов.
1-й. nikita2206 (15.09.2010 в 22:05)
2-й. Ваш.
3-й. preg_replace(); | |
|
|
|
|
|
|
|
для: lElectroHardl
(16.09.2010 в 23:04)
| | ну да.
из которых корректен только один. | |
|
|
|
|
|
|
|
для: Trianon
(16.09.2010 в 23:37)
| | Это еще почему?
Да, от самих инъекций да, только mysql_real_escape_string(), но вообще защищаться можно любым из 3-х вариантов. Все 3 работать будут прекрасно. | |
|
|
|
|
|
|
|
для: lElectroHardl
(17.09.2010 в 16:56)
| | чтобы защищаться вообще, нужно купить себе парабелум. | |
|
|
|
|
|
|
|
для: Trianon
(17.09.2010 в 17:11)
| | Неправильно выразился.
Я к тому, что у меня, например, такая функция:
<? function author($text)
{
$text = trim($text);
$text = preg_replace("/[^a-zA-Zа-яА-ЯЁё\s]{1,25}/", "", $text);
return $text;
}
|
Зачем тут еще и mysql_real_escape_string() использовать? Разве после обработки pre_replace, в скрипт смогут пройти не отсеянные данные? | |
|
|
|
|
|
|
|
для: lElectroHardl
(17.09.2010 в 17:31)
| | Может и не могут. Может и могут. Какая разница?
я даже смотреть не стану, могут или нет.
Это не повод нарушать четкие алгоритмы корректной обработки данных.
На красный свет нужно стоять независимо от того, есть опасность с кем-то столкнуться, или нету. | |
|
|
|
|
|
|
|
для: Trianon
(17.09.2010 в 17:45)
| | Я просто ни понимаю, зачем делать 2 действия, которые по сути делают одно и тоже (фильтруют данные)? | |
|
|
|
|
|
|
|
для: lElectroHardl
(17.09.2010 в 18:06)
| | нет такого действия - фильтровать данные.
Есть действие - преобразовать строку из одного языка в другой.
PS. На это форуме я об этом говорил не один, не два и не три раза.
Поднимите поиск в конце концов. | |
|
|
|
|
|
|
|
для: lElectroHardl
(17.09.2010 в 17:31)
| | Подход, имхо, неправильный.
Я предпочитаю, когда меня просят исправить мою оплошность (например, спецсимвол в нике), а не исправляют ее корявым образом за меня.
А про mysql_real_escape_string - это должна быть вообще привычка, такая же, как дыхание. Данные подставляются в запрос? Либо указанная функция (если ожидается строковой формат), либо приведение к числовому типу (если ожидается число). | |
|
|
|
|
|
|
|
для: lElectroHardl
(16.09.2010 в 23:04)
| | напишите еще
4-й. отказаться от использования субд | |
|
|
|