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
|