浏览器窗体的安全性

plone.app.protect的Python项目详细描述


简介

这个包包含一些实用程序,可以帮助保护plone的某些部分 或者应用程序构建在plone框架之上。

保护装饰工

使用plone.app.protect最常用的方法是通过protect 装饰工。这个decorator将checkers的列表作为参数:每个 checker将检查请求的特定安全方面。例如:

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帖子

如果您只需要允许http post请求,那么可以使用post only 检查人:

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视图来完成。例如:

authenticator=getMultiAdapter((request, context), name=u"authenticator")
if not authenticator.verify():
    raise Unauthorized

使用protectdecorator可以更方便地执行相同的操作:

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 only。 [威瑟特]

1.0A1-2008年1月27日

  • 初次发行 [威瑟特]

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

推荐PyPI第三方库


热门话题
Java无法调用扩展超级非抽象类的抽象类方法   java Hibernate 5关联[]引用了一个未映射的实体[]:origin(User.hbm.xml)   java禁用JSpinner中的数字分组   java Spring的环境抽象是否使用PropertyEditor?   java是否创建自定义注释作为FrameworkAnnotation的别名?   java如何将Selenium安装为Unix守护程序?   java三值if运算符在正则if-one中   有人能帮我在一个程序上分析java代码吗?   java Spring集成5.0反应堆类型支持   java Websphere 7线程转储分析   java Akka期货和监管策略如何应对失败   使用Clojure中的可选参数调用java函数的构造函数   java如何消除安卓按钮的延迟?   Android上使用X.509证书的java认证应用程序   java如何获取列表中特定类型的所有对象?   java如何将json数组字符串转换为json对象   安卓 Java从长时间返回的日期不正确   java Android Studio在尝试从TextEdit搜索单词时崩溃   ViewPager的java子项