General > Русский (ru)

CSRF уязвимости. возможность перехватить доступ к системе

<< < (2/2)

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