ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ngx_http_userid_module - неточности д окументации, cookie предска зуем


  • To: nginx-ru@xxxxxxxxx
  • Subject: ngx_http_userid_module - неточности д окументации, cookie предска зуем
  • From: Volodymyr Kostyrko <c.kworr@xxxxxxxxx>
  • Date: Fri, 20 Jan 2012 14:29:02 +0200
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=SPrNSALYtU9Sh3QEQ++SVNB/JW1DR1Yr+excJyobRIc=; b=qBG9c5b0eo9rgResn8IicsE2ZB0yOAcEgzoLAnVt/HWCJAHD0EEw27rZQQncpAdoW4 9iRXGdpvpPD8PQnOXPC8mkFlU4wupi1hBN+qTfQ/fEdPuxWFePhiyYPe04BSDlTQaKE3 m6/IGIUkFlQXslDB8FEsZf+Z8OyZ00cymyZh4=

Hi all.

В документации модуля отсутствует описание userid_mark:

синтаксис:      userid_mark off | [a-z0-9=];
умолчание:      off
контекст:       http, server, location
Директива задаёт первый символ хвоста base64 представления куки. По умолчанию хвост base64 - '=='. "userid_mark A" выдаёт куки,
оканчивающиеся на "A=". При этом он перевыдаёт все принятые куки,
у которых хвост не такой. Это можно использовать чтобы добавить или поменять P3P или expires.

Второе. По идее userid должен уникально идентифицировать каждого пользователя без возможности узнать а кто ещё сейчас чего. На самом деле выдаваемые куки различаются буквально парой байтов.

[green] ~> fetch -vvvs http://test/
scheme:   [http]
user:     []
password: []
host:     [test]
port:     [0]
document: [/]
---> test:80
looking up test
connecting to test:80
requesting http://test/
>>> HEAD / HTTP/1.1
>>> Host: test
>>> User-Agent: fetch libfetch/2.0
>>> Connection: close
>>>
<<< HTTP/1.1 200 OK
<<< Server: nginx/1.0.11
<<< Date: Fri, 20 Jan 2012 11:04:18 GMT
<<< Content-Type: application/json
<<< Connection: close
<<< Set-Cookie: uid=wKgIPE8ZSjKvoyMQAwNkAg==; expires=Sat, 19-Jan-13 11:04:18 GMT; path=/
<<< P3P: policyref="/w3c/p3p.xml", CP="NOI CUR ADM PSA OUR STP STA"
<<<
offset 0, length -1, size -1, clength -1
Unknown
[green] ~> fetch -vvvs http://test/
scheme:   [http]
user:     []
password: []
host:     [test]
port:     [0]
document: [/]
---> test:80
looking up test
connecting to test:80
requesting http://test/
>>> HEAD / HTTP/1.1
>>> Host: test
>>> User-Agent: fetch libfetch/2.0
>>> Connection: close
>>>
<<< HTTP/1.1 200 OK
<<< Server: nginx/1.0.11
<<< Date: Fri, 20 Jan 2012 11:04:19 GMT
<<< Content-Type: application/json
<<< Connection: close
<<< Set-Cookie: uid=wKgIPE8ZSjOvoyMQAwNlAg==; expires=Sat, 19-Jan-13 11:04:19 GMT; path=/
<<< P3P: policyref="/w3c/p3p.xml", CP="NOI CUR ADM PSA OUR STP STA"
<<<
offset 0, length -1, size -1, clength -1
Unknown

Т.е. зная во сколько пользователь подключался к сайту можно приблизительно угадать какая у него будет создана сессия. Ну и соответственно в неё вклиниться. Можно вообще мониторить сайт на предмет авторизированных пользователей.

--
Sphinx of black quartz judge my vow.

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.