[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: if($_GET
Миша
Так меня могут взломать?

$odin = $_GET['test'];

if($odin == $dva)


_____________
Принимаю заказы, писать в ЛС
GET
Медведь

Не совсем понятно, что ты написал.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Миша
Цитата (GET @ 22.03.2015 - 18:37)
Медведь

Не совсем понятно, что ты написал.

Да вроде не пьяный ещё) буквы вроде ровно печатаю))

В общем принимаю значение от пользователя через гет и сравниваю со своим значением.

if($_GET['polsovatel'] == $moya_peremennaya) // тут можно мееня ломануть?


_____________
Принимаю заказы, писать в ЛС
GET
Цитата
Да вроде не пьяный ещё) буквы вроде ровно печатаю))

В общем принимаю значение от пользователя через гет и сравниваю со своим значением.

if($_GET['polsovatel'] == $moya_peremennaya) // тут можно мееня ломануть?


Не пойму в чем проблема. Совпало значение дальше идем, нет не идем. smile.gif

Как тут что ломанешь? Ну напиши if($_GET['polsovatel'] === $moya_peremennaya) для успокоения. Вот если $_GET['polsovatel'] будет внутри SQL запроса, тогда да, нужно или real_escape_string или (int)

В любом случае $_GET абсолютно публичные переменные, чего там ломать, когда их можно любыми написать.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
AllesKlar
Цитата
А Медведь сейчас находится в стадии, через которую все мы прошли: "О боже, мой новый сайт захотят взломать 100500 суперагентов всех спецслужб мира".
Пройдет время и он успокоится

http://phpforum.su/index.php?showtopic=0&v...dpost&p=3072111
:D

Медведь
Ломают не данными, а при неверном их использовании в скрипте.
include $_GET['filename']; // это уязвимость

if( in_array($_GET['filename'], $my_files_array) )
{
include $_GET['filename'];
}
// это не уязвимость



_____________
[продано копирайтерам]
Миша
В функциях понял, что безопасно, а так?
if($_GET['polsovatel'] == $moya_peremennaya)


т.е. он, пользователь может сделать, что тут получится True. Отправив 1==1 and и где надо поставит кавычки.

_____________
Принимаю заказы, писать в ЛС
AllesKlar
Не может.
$_GET['polsovatel'] - это обычная текстовая строка, которая будет сравниваться с $moya_peremennaya.
И что там в $_GET['polsovatel'] - это не важно, хоть кавычки, хоть некавычки.
if("1==1 and" == $moya_peremennaya){}

Результат можешь посмотреть так:

var_dump($_GET['polsovatel']);
var_dump($moya_peremennaya);
$cond = $_GET['polsovatel'] == $moya_peremennaya;
var_dump($cond);


Не хочется занудствовать, но ты учился или просто для себя программированием решил заняться?
Если учился, то где ты был, когда изучали хранение переменных в памяти?
Если не учился, то посмотри в сторону этого.
Что такое на физическом уровне переменная.
Как она хранится в памяти.
Как хранятся массивы.
Как хранятся объекты.
Что на физическом уровне означает переча переменной по значению и передача переменной по ссылке.

Поняв это, у тебя не будет возникать подобных вопросов.
Если ты этого не поймешь, то не стоит программировать.

_____________
[продано копирайтерам]
GET
Цитата
Отправив 1==1 and и где надо поставит кавычки.


Сервер же не дурак, он знает где переменная $_GET закончится. Про кавычки это SQL инъекция, когда кодер немного шибздиканутый забыл поставить экранирование от спецсимволов и прям целеком вставляет внутрь своей строки переменную пришедшую по $_GET ($_POST, $_COOCKIE) тогда и получится, что кавычка сработает, а в этом случае ничего не будет:

Цитата
if($_GET['polsovatel'] == $moya_peremennaya)


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
Кстати недавно я видел, как ко мне долбился юзер с куском кода внутри $_SERVER['USER_AGENT']

blink.gif

Вот так вот.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Миша
Значит можно ничего не фильтровать, кроме запросов к БД (db)?

_____________
Принимаю заказы, писать в ЛС
GET
Цитата
Значит можно ничего не фильтровать


У тебя должен быть белый список значений переменных, твоих - которые навигационные, остальные или нах**й или в проверку через real_escape_string / (int)

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
AllesKlar
Медведь
Уязвимостям посвящены целые книги. А ты хочешь ответ в одном посте smile.gif

antichat.ru вот не плохой сайт по теме уязвимостей.
Почитай, как ломают. Как поймешь, сразу же и поймешь, как делать, чтобы НЕ ломали.

_____________
[продано копирайтерам]
Миша
Цитата (AllesKlar @ 22.03.2015 - 19:05)

Не хочется занудствовать, но ты учился или просто для себя программированием решил заняться?
Если учился, то где ты был, когда изучали хранение переменных в памяти?
Если не учился, то посмотри в сторону этого.
Что такое на физическом уровне переменная.
Как она хранится в памяти.
Как хранятся массивы.
Как хранятся объекты.
Что на физическом уровне означает переча переменной по значению и передача переменной по ссылке.

Поняв это, у тебя не будет возникать подобных вопросов.
Если ты этого не поймешь, то не стоит программировать.

Для себя, так я закончил школу, пошёл работать.
Потом получил права и работаю водителем.
Закончил курсы на электрика.
Сейчас учусь на тракториста, чтобы получить диплом.

_____________
Принимаю заказы, писать в ЛС
AllesKlar
Медведь
Ясно.
Спрашивай... cool.gif

_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.