parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

G_Z 15.11.2017 07:13 / 15.11.2017 07:14

Интересно как другие библиотеки, тот же urllib с такими заголовками поступает.
Ни urllib2, ни httplib заголовки не декодируют:
import httplib
conn = httplib.HTTPSConnection('…')
conn.request('HEAD', '/')
res = conn.getresponse()
print res.getheaders()
[('x-powered-by', 'PHP/5.5.9-1ubuntu4.21'), ('set-cookie', 'PHPSESSID=7ucaotqtg1rrj5emf5oeuh6fh4; path=/; HttpOnly, _csrf=4ebb94289bf561ccf8715125686d799dd0d021323338b97a2a206491e154841ca%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22f%AF%28%EC%83%22b%E0%C4%BE%91%90%94%BEX6%B9%D3%95%C9C%26%040%A6%B5%F3%A0%9B%9C%5D%E1%22%3B%7D; path=/; httponly'), ('expires', 'Thu, 19 Nov 1981 08:52:00 GMT'), ('server', 'nginx/1.4.6 (Ubuntu)'), ('connection', 'keep-alive'), ('pragma', 'no-cache'), ('cache-control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0'), ('date', 'Tue, 14 Nov 2017 23:45:16 GMT'), ('content-type', 'text/html; charset=UTF-8')]
Решил проверять значения cookie на вшивость и просто выбрасывать некорректно закодированные значения.

Что любопытно, при такой ошибке у $exception'а нет типа, только комментарий:
^try{
	$s[^string:js-unescape[4ebb94289bf561ccf8715125686d799dd0d021323338b97a2a206491e154841ca%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22f%AF%28%EC%83%22b%E0%C4%BE%91%90%94%BEX6%B9%D3%95%C9C%26%040%A6%B5%F3%A0%9B%9C%5D%E1%22%3B%7D]]
	^s.lower[]
}{
	$exception.handled(true)
	^json:string[$exception]
}
{ "source":"lower", "file":"…", "lineno":3, "colno":12, "comment":"change_case_UTF8 error: end pointers do not match", "handled":true }