浏览器窗体的安全性

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有没有办法在堆栈后保留元素。pop()?   多线程Java:Thread。currentThread()。getName()返回“还没有线程”   java For循环只返回最后一个值   java初始化和比较整数   Java将自定义光标热点设置为图像的中心(.png)   java如何在assertThat中使用带有类型推断的hamcrest nullValue   java Quarkus REST客户端避免空字段的JSON序列化   java使用JFileChooser将语音从文本保存到语音文件   java Android Studio找不到JAR'org。日食jgit4。5.3.201708160445r。罐子   java如何在ElasticSearch中使用带通配符的术语?   java可能的空指针异常安卓   在JavaSwing中使用AwesomeFont中的自定义字体和unicode字符向JButton添加图标?   部署过程中的java持久化单元名称问题WildFly   JavaSpring数据:我无法在数据库中保存关系模型   字符串如何计算文件中单词的长度?JAVA   java Eclipse调试器中变量项旁边的id=xxx是什么   httpclient Java httppost文件打印后上载速度   JAXB对象不实现可序列化的结果是什么?   java Spring JPA数据:自定义通用存储库和服务:未满足PendencyException   java如何从解析类中检索所有值?