General > Русский (ru)
CSRF уязвимости. возможность перехватить доступ к системе
pl-m:
да, запутался слегка :-D
...ну вот поэтому в самом начале и написал SERVER_NAME .. чтобы не путаться с этими портами и их отсутствиейм :-D
pl-m:
...но суть вся в следущем:
если два условия отсутствия_равенства ("!=") становятся TRUE -- то их результат умножения ("&&") тоже будет TRUE.. седовательно в этом случае выплеснется ошибка-и-смерть (die)
тоесть по закону де-моргана ( http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA%D0%BE%D0%BD%D1%8B_%D0%B4%D0%B5_%D0%9C%D0%BE%D1%80%D0%B3%D0%B0%D0%BD%D0%B0 ) -- следущие два выражения эквивалентны:
--- Code: ---if ($check_referer_value != $valid_host && $check_referer_value != $valid_host_and_port) { die('Error'); }
else { /* CSRF нет, всё хорошо*/ }
--- End code ---
и
--- Code: ---if ($check_referer_value == $valid_host_and_port || $check_referer_value == $valid_host) { /* CSRF нет, всё хорошо*/ }
else { die('Error'); }
--- End code ---
ну последнее выражение ясное дело надо записать как :-):
--- Code: ---if (!($check_referer_value == $valid_host_and_port || $check_referer_value == $valid_host)) { die('Error'); }
--- End code ---
....тоесть какое выражение прощще-для-понимания (и не запутывания) -- то можно и использовать.... но первое выражение (то где "!=") -- просто содержит меньше операторов :-)
Navigation
[0] Message Index
[*] Previous page
Go to full version