{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
Razor * 0.67
[автор] (29 фев 2016, 18:56) [0/0] [0] [отв] [спам] [под] +1 | -1

Не доходит одна фишка.
Допустим есть код

isset($_GET['text']) ? mysql_real_escape_string($_GET['text']) :false;
mysql_query("insert into `table` set `text` = '".$_GET['text']."'"*;

Естественно в первой строке кода text фильтрируется но во второй строке уже $_GET['text'] применяется без фильтра, так вот вопрос, как PHP обрабатывает такой код? То есть если в первой строке уже фильтрируется get запрос то достаточно или с 2 строки php начинает обрабатывать заного?

2.
acorn * 0.27
(29 фев 2016, 18:59) [0/0] [0] [отв] [спам] [под] +1 | -1

вторую строку тож надо фильтовать
Добавлено 29.02.16 в 19:00:50:
че это за гкод у тебя вообще?

3.
Wins * 5.64
(29 фев 2016, 19:02) [1/0] [1] [отв] [спам] [под] +1 | -1

$text = isset($_GET['text']) ? mysql_real_escape_string($_GET['text']) : false;
mysql_query("insert into `table` set `text` = '".$text."'"*;

4.
Razor * 0.67
[автор] (29 фев 2016, 19:02) [0/0] [0] [отв] [спам] [под] +1 | -1
acorn,

ну код г да, просто я хочу понять принцип mysql. Тоесть если не фильтрировать и вторую строку то считается уязвимостью?


Изм. 1 раз. / Посл. изм.
Razor * 0.67
(29 фев 2016, 19:03)
5. (29 фев 2016, 19:02) [0/0] [0] [отв] [спам] [под] +1 | -1

фильтруй все что можно фильтровать)

6.
acorn * 0.27
(29 фев 2016, 19:08) [0/0] [0] [отв] [спам] [под] +1 | -1

Razor, фильтровать нужно ВСЕ, что приходит от пользователя!

7.
Razor * 0.67
[автор] (29 фев 2016, 19:11) [0/0] [0] [отв] [спам] [под] +1 | -1
Wins,

А если допустим так:

foreach($_GET as $key=>$value){
$_GET[$key]=mysql_escape_string($value);}

mysql_query("insert into `table` set `text` = '".$_GET['text']."'"*;


Будет ли фильтрироваться text в запросе?

---
Знаю что код говно, хочется уточнить принцип.

8.
Wins * 5.64
(29 фев 2016, 19:15) [0/0] [0] [отв] [спам] [под] +1 | -1
Razor,

Тогда уж
$_GET = array_map('mysql_real_escape_string', $_GET);

вместо
mysql_escape_string
используй
mysql_real_escape_string

но всеравно это говнокод.

9. (29 фев 2016, 19:25) [0/0] [0] [отв] [спам] [под] +1 | -1
Wins,

foreach быстрее с подобным справляеться.

10.
Razor * 0.67
[автор] (29 фев 2016, 19:34) [0/0] [0] [отв] [спам] [под] +1 | -1

Wins, Для теста потестил кое что,

Если сделать так:
<?
foreach($_GET as $key=>$value){
$_GET[$key]=mysql_real_escape_string($value);}

echo $_GET['p'];
?>
и вводить http://site/?p=test
То в экран ничего не выводит, пустая белая страница
а если mysql_real_escape_string заменить на htmlspecialchars то всё норм, а почему так?

Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений