Я хотел поиграть с Content-Security-Policy.Я создал следующую программу, которая
- устанавливает для Content-Security-Policy-Report-Only-default значение по умолчанию-src
- Просто печатает «Hello World»
- Отвечает наПост (отчет CSP) путем записи в командную строку
Вот мой код:
#!/usr/bin/python
from http.server import HTTPServer, BaseHTTPRequestHandler
from io import BytesIO
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.send_header("Content-Security-Policy-Report-Only", "default-src; report-uri /")
self.end_headers()
self.wfile.write(b'Hello, world!')
def do_POST(self):
content_length = int(self.headers['Content-Length'])
body = self.rfile.read(content_length)
self.send_response(200)
self.end_headers()
response = BytesIO()
response.write(body)
print(body)
self.wfile.write(response.getvalue())
httpd = HTTPServer(('localhost', 8000), SimpleHTTPRequestHandler)
print ("Serving on http://localhost:8000")
httpd.serve_forever()
Я посещаю http://localhost:8000 в моем браузере, и вот чтоЯ получаю:
'{"csp-report":{"blocked-uri":"","document-uri":"http://localhost:8000/","line-number":1,"original-policy":"default-src \'none\'; report-uri http://localhost:8000/","referrer":"","script-sample":";(function installGlobalHook(window) {\\n ...","source-file":"http://localhost:8000/","violated-directive":"default-src"}}'
Что это?Я попробовал это в режиме инкогнито, чтобы убедиться, что расширения не запущены.