Защита от ложного URL в многопользовательских системах.

Фанат

oncle terrible
Команда форума
Да я не про реферер =)
Я про тему веселую. Как наглядную иллюстрацию
 

kruglov

Новичок
Хм, дык тема-то закрыта. 3 года назад. Это что ж получается, у нас тут закрытая тема от открытой отличается только отсутствием кнопки "Ответить"?
 

xintrea

Новичок
В общем, я так понял, правила два

1. Все формы подписывать подписью (например SESSID)

2. Нигде в пространстве игры (сайта) не давать пользователям возможности размещать произвольные ссылки. Как только место с произвольной ссылкой появится, то пункт 1 уже не поможет, ибо кулхацкеры смогут выдергивать переменные сессии, и влезть в сессию пользователя.
 

kruglov

Новичок
Что значит "произвольные ссылки"? Если JavaScript, то само собой.
 

das6745

Новичок
a что если хранить в сессии адресс хоста пользователя и потом сверять сид и откуда он пришел?

...и зачем тогда каждую форму сидом подписывать? лучше уже каким-нить хэшем, причем при каждом просмотре он должен быть униквльным.

имхо сида + проверки айпишника (если паранойя мучает можно проверить на проксю но не на 100%)
 

kruglov

Новичок
das6745
a что если хранить в сессии адресс хоста пользователя и потом сверять сид и откуда он пришел?
смысл? javascript и так выполнится с нужного хоста.

Вообще, вы сначала все вышесказанное прочитайте, потом придумывайте советы, а то что-то не то получилось.

Какая прокся? Какой айпишник?
 

das6745

Новичок
if($_SESSION['ip']) != $_SERVER['REMOTE_ADDR']) {
die ('access denied');
}
вот так вроде. для меня работает.
javascript и так выполнится с нужного хоста.
это в смысле пользовательского? ну и что, на сервере данные то целыми останутся

Какая прокся? Какой айпишник?
$_SERVER ["REMOTE_ADDR"] = айпи пользователя,

$_SERVER ["HTTP_X_FORWARDED_FOR"], $_SERVER ["HTTP_VIA"] - если установлены то 99% пользователь сидит за проксей, обратное неверно.

я ведь правильно понимаю, что если послать ответ форму с хоста то его можно с высокой вероятностью однозначно определить?
можно ли сформировать ответ формы так, что нельзя будет определить однозначно от кого пришло? и не поможет ли в таком случае шифрованое соединение?

у меня лично сделано так: сессии ложатся в базу вместе с айпи пользователя +немного данных, любых, далее при каждом запросе. где необходимно, сверяю сид и айпи.

можен не совсем красиво? какие еще есть решения?
 
Сверху