django安全小措施--如何禁用掉在模板中修改和删除数据库
2012-06-05 15:13
471 查看
看djangobook3.py3k.com的第四章,偶然发现django设计的方法调用过程中给了一个安全小措施。
举个简单的例子:你的一个 BankAccount 对象有一个 delete() 方法。在BankAccount的对象访问过程中,应该授予权限才能执行account的删除和修改操作。即不应该允许模板包含像 {{account.delete}} 这样的方法调用。要防止这样的事情发生,Django要求必须设置该方法的 alters_data 函数属性:
这样,模板系统不会执行任何以该方式进行标记的方法。也就是说,如果模板包含了 {{account.delete}} ,该标签不会调用 delete() 方法。它只会安静地失败(并不会引发异常)。
举个简单的例子:你的一个 BankAccount 对象有一个 delete() 方法。在BankAccount的对象访问过程中,应该授予权限才能执行account的删除和修改操作。即不应该允许模板包含像 {{account.delete}} 这样的方法调用。要防止这样的事情发生,Django要求必须设置该方法的 alters_data 函数属性:
def delete(self): # Delete the account delete.alters_data = True
这样,模板系统不会执行任何以该方式进行标记的方法。也就是说,如果模板包含了 {{account.delete}} ,该标签不会调用 delete() 方法。它只会安静地失败(并不会引发异常)。
相关文章推荐
- 如何仿数据库添加修改删除
- django如何实现文件的上传,修改,删除,展示(01)
- 如何拿回被恶意或者不小心删除硬盘所有者权限而导致的文件访问以及修改权限被限制(NTFS格式安全权限问题)
- 【转】SE16如何删除或合修改数据库表
- django如何将修改好的新模型写入数据库
- 下面我们将详细讲解如何在Page_Load()中对数据库的增加、删除、修改,最后我们再来总结一下ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法
- ADO如何新增修改删除数据库的记录呢
- django如何实现文件的上传,修改,删除,展示(02)
- 如何安全的修改数据库表单?
- 如何解决使用addBatch()和executeBatch()无法批量增加删除修改数据库数据等问题
- django如何实现文件的上传,修改,删除,展示(03)
- django如何实现文件的上传,修改,删除,展示(04)
- Django修改model如何同步数据库
- SE16如何删除或修改数据库表
- 命令行修改数据库密码 和如何彻底删除数据库文件mysql
- Django删除数据库表格后如何重建
- SAP如何删除或合修改数据库表
- SE16如何删除或合修改数据库表
- SQL sever语句对数据库的基本操作新增、删除、修改、查看等操作
- 如何实现将vsflexgrid中修改的数据反馈到数据库中