用于从内容安全策略(CSP)、HTTP公钥固定(HPKP)和HTTP报告API接收事件报告的API终结点。

Django-Lookout的Python项目详细描述


Django了望台[django lookout logo:a lookout tower](./lookout/docs/logo.svg)


一个基于django的api端点,用于收集和处理访问者的web浏览器发送的自动事件报告。目前包括[内容安全策略](https://en.wikipedia.org/wiki/content_security_policy)(CSP)和[http公钥固定](https://en.wikipedia.org/wiki/http_public_key_pinning)(HPKP),但计划支持其他报告类型。

在开始之前,您应该熟悉这些标准及其潜在的缺陷([特别是hpkp](https://www.smashingmagazine.com/be fear of public key pinning/))。使用Django Lookout和仅报告策略可以显著降低风险,这将仍然允许您在不意外地使您的网站无法访问的风险下收到潜在攻击的通知。

django lookout只处理过程中的*报告*部分。设置告诉浏览器要做什么,甚至在哪里发送报告的标题超出了它的范围。您需要为csp和/或hpkp设置"report uri"属性以指向您的django lookout端点。



\django lookout*必须*设置在不同的域名上。



\

]
````





]
````

**注意**

*您可以将模式设置为您想要的任何模式。这里是指向"report uri"的地方。
*注意后面的斜杠。






\第三步



>运行数据库迁移:


``bash
./manage.py migrate migrate lookout



《有用指南》





《内容安全策略策略》内容安全策略策略策略



















*[谷歌网站基础知识-内容安全策略](https://developers.google.com/web/fundamentals/security/csp/)
*[内容安全策略-简介](https://scottelme.co.uk/content security policy an introduction/)


与HPKP报告键固定(https://developers.google.com/web/updates/2015/09/hpkp-reporting-with-chrome-46)
*[关于设置HPKP的指导](https://scottelme.co.uk/关于设置HPKP的指导]



在Django Lookout 1.0中。

-[带外报告API](https://wicg.github.io/reporting/)
一个通用的事件报告API,可由以下所有标准使用。Django Lookout自动将"传统"事件报告转换为通用架构。
-[内容安全策略](https://developer.mozilla.org/en-us/docs/web/http/csp)
浏览器将(可选)阻止未经授权的内容,并在请求资源时发送事件报告这是策略不允许的。
-[http公钥固定](https://developer.mozilla.org/en-us/docs/web/http/public_key_pinning)
如果站点在中不使用指定的https证书,支持hpkp的浏览器将(可选)阻止连接并发送事件报告未来。
-[网络错误日志](http://wicg.github.io/network-error-logging/)
如果请求内容时遇到网络错误,支持NEL的浏览器将发送事件报告。
-[预期CT](https://tools.ietf.org/html/draft-ietf-httpbis-expect-ct-02)
如果支持report ct的浏览器接收到'不遵守[证书透明度](https://www.certificate-transparency.org/)指南。
-[预期装订](https://scottelme.co.uk/ocsp-expect-stamp/)
如果与站点的TLS握手不包括[ocsp],支持预期装订的浏览器将发送事件报告响应](https://en.wikipedia.org/wiki/ocsp_u stapling)。



\尽管人们希望通用报告api能显著改善现代浏览器的状况。



**注意**

*此表仅考虑包含报告功能时支持的功能。
*Internet Explorer不包括在内,因为它没有通过标准头支持这些功能。

--|:——————————————————————支持
**带外报告API**[计划的][9]不支持不支持
**网络错误记录(NEL)*[计划的][13][考虑中的][14]不支持不支持
**预期CT**|[计划的][17][计划的][18]?|是吗?|
**需要装订**?|是吗?|是吗?|是吗?|


[2]:https://developer.microsoft.com/en-us/microsoft-edge/platform/status/contentsecuritypolicylevel2/"对级别3的部分支持"
[4]:https://webkit.org/status/specification-content-security-policy-level-3"对级别3的部分支持"

[5]:https://www.chromestatus.com/feature/4669935557017600
[6]:https://developer.microsoft.com/en-us/microsoft-edge/platform/status/publickeypiningextensionforhttp/"正在考虑中"
[7]:https://bugzilla.mozilla.org/show_bug.cgi?id=1091176"无报告uri或仅支持报告。"

[9]:https://bugs.chromium.org/p/chromium/issues/detail?id=676016

[13]:https://www.chromestatus.com/feature/5391249376804864"没有最新进展"
[14]:https://developer.microsoft.com/en-us/microsoft edge/platform/status/networkerrorlogging/

[17]:https://bugs.chromium.org/p/chromium/issues/detail?id=679012
[18]:https://lists.w3.org/archives/public/ietf http wg/2016octdec/0767.html



\tools和类似项目

*[Mozilla天文台](https://observation.mozilla.org/)。通用网站安全测试套件。
*[securityheaders.io](https://securityheaders.io)。安全相关http响应头的测试套件。
*[django csp reports](https://github.com/adamalton/django csp reports)。专门针对csp报表的类似项目。
*[报表uri.io](https://report uri.io/)。服务于类似目的的商业服务。他们也有一些有用的免费测试工具。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
运行Java FXML项目时出现异常(应用程序启动方法中出现异常)   java如何更新JList?   java重新定义变量和范围   java调用DominoXPage中的web服务使用者来填充字段   带有JasperReport库和MongoDB的java GeneratePDF   JavaSpring将参数注入带有注释的超类中   swing中JLabel的java数组   java如何从数据库在javafx中填充表视图   java如何在springcloudstreambinderkafkastreams中使用函数方法检索/设置头:3.1.1   java如何将数据库结果集加载到jeditorpane中   如何根据JavaSwing应用程序中的内容自动组织JFrame并调整其大小   java NetworkOnMainThreadExecution和Twitter时间线提要示例   java和Apache HttpClient,为什么我的连接超时不起作用?   java使用正则表达式向字母数字检查添加符号   java Spring管理事务、插入和选择可以执行,但不能更新和删除   java Tomcat启动时白标签错误   java中的多线程如果一个线程在wait()之前调用notify(),这怎么不会导致第二个线程在第一个线程进入wait状态之前进入块?   java使用自定义ViewHandler处理登录页面上的ViewExpiredException   PreLollipop和棒棒糖设备的java材质设计颜色不起作用