浏览器表单安全
项目描述
简介
此包包含帮助保护Plone或基于Plone框架构建的应用程序部分的实用工具。
保护装饰器
使用plone.app.protect最常见的方式是通过保护装饰器。此装饰器接受一个包含检查器的列表作为参数:每个检查器将检查请求的特定安全方面。例如
from plone.app.protect import protect from plone.app.protect import PostOnly @protect(PostOnly) def SensitiveMethod(self, REQUEST=None): # This is only allowed with HTTP POST requests.
这依赖于受保护的函数有一个名为REQUEST的参数。
HTTP POST
如果您只需要允许HTTP POST请求,则可以使用PostOnly检查器
from plone.app.protect import PostOnly from plone.app.protect import protect @protect(PostOnly) def manage_doSomething(self, param, REQUEST=None): pass
此检查器仅操作HTTP请求;其他类型的请求不被检查。
表单身份验证
在Web应用程序中,一个常见问题是跨站请求伪造或CSRF。这是一种攻击方法,其中攻击者欺骗浏览器向另一个网站执行HTTP表单提交。为此,攻击者需要知道确切的表单参数。表单身份验证是一种方法,通过添加一个可验证的额外验证器来使攻击者无法预测这些参数。
要使用表单验证器,您首先需要将其插入到您的表单中。这可以通过在表单中使用简单的TAL语句来完成
<span tal:replace="structure context/@@authenticator/authenticator"/>
这将生成一个包含身份验证信息的HTML输入元素。接下来,您需要在某处添加逻辑以验证验证器。这可以通过调用验证器视图来完成。例如
authenticator=getMultiAdapter((request, context), name=u"authenticator") if not authenticator.verify(): raise Unauthorized
您可以使用更方便的方法使用 保护 装饰器来做同样的事情
from plone.app.protect import CheckAuthenticator from plone.app.protect import protect @protect(CheckAuthenticator) def manage_doSomething(self, param, REQUEST=None): pass
变更日志
1.0b1 - 2008年3月7日
重构代码以提供通用的保护装饰器,该方法接受检查器列表作为选项。为验证认证器和仅HTTP POST添加检查器。[wichert]
1.0a1 - 2008年1月27日
首次发布 [wichert]
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。
源分发
plone.app.protect-1.0b1.tar.gz (12.2 kB 查看哈希)
构建分发
plone.app.protect-1.0b1-py2.4.egg (18.2 kB 查看哈希)
关闭
plone.app.protect-1.0b1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2a9666ee821f22b8aad56d48aeb8ae722aa00fa4ed263ca18107cc888c4db5b4 |
|
MD5 | 65322b5550aa12102ba01d4d46a0843c |
|
BLAKE2b-256 | 6029e5f4d720d636846ffcca5900de54deb86b07caf3df07b4a7ab3a4d31ab11 |
关闭
plone.app.protect-1.0b1-py2.4.egg的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 89a775eb1cb9cf3986b643c08a2cbf726367d872fce1bf7598fea29b05d91290 |
|
MD5 | 4b77fb399467ee7b33ac25586f75c465 |
|
BLAKE2b-256 | 99be454e9d79584f64c016c027fc6d7c5e68ac336e1823d0b07627abc56866b6 |