安全性此设计中的用户身份验证存在缺陷。
来自:http://wiki.pylonshq.com/display/pylonscookbook/Simple+Homegrown+Authentication
注意: 一个。项目遵循MVC模式。 湾只有拥有有效用户名和密码的用户才能提交。
设计: 一个。有一个基本控制器,所有控制器都来自该控制器。 湾在调用派生控制器中的任何操作之前,系统会在基本控制器中调用之前操作。 C。在每个控制器中,用户硬编码需要在阵列中验证的操作。 d。 之前操作首先查看具有受保护操作的数组,并通过峰值进入会话来查看用户是否已登录。如果用户在场,则允许用户提交,否则将用户重定向到登录页面。
您怎么看?
答案 0 :(得分:1)
我更喜欢使用需要身份验证的装饰功能,因为它不需要输入动作名称2次 - 在函数定义和requires_auth列表中。在这种情况下,您可以输错操作名称,解释器不会注意到它。 装饰行动没有这个问题:
@authorize(ValidAuthKitUser())
def list(self):
pass
您还可以修饰__before__函数,它将对所有控制器操作产生影响:
@authorize(ValidAuthKitUser())
def __before__(self):
pass
def list(self): # automatically checks if the user is authenticated
pass