这个包包含一个Django模板解析器,它可以用来查找包含不被转义的变量的模板。
django-xss-detection的Python项目详细描述
#Django XSS检测
此包包含一个django模板解析器,可用于查找模板
包含无法转义的变量。此包当前具有
不了解自定义过滤器、自定义标记和python代码(例如
标记为安全)。该代码只针对django版本>;=1.5和<;=1.7进行了测试。
要求
*django>;=1.5和<;1.8
*lxml
用法
通过运行
>;`python-m django_xss_detection.cli`
它是如何工作的?
该代码通过猴子修补django模板代码并通过
到variablenode的回调函数,最终引用
“compileStringWrapper.handle_callback”方法。使用回调函数
稍后当代码“呈现”给定模板并遇到变量节点时
无法逃脱。非引用变量节点检测的实现
缺少javascript上下文中的元素属性和变量节点
javascript转义不是通过回调实现的,请参见
“为模板获取非引用的属性变量”和
parse_template.py中的'get_non_js_escaped_results_for_template'。
此外,代码还修改了内置条件标记的版本,
例如{%if%}和{%ifequal%},以便“呈现”所有可能的模板
代码。如果此包无法处理您的自定义模板标记,则
您可以添加对它们的支持,类似于“华夫饼”模板标记
实现(参见“util.py”中的“templatetags/waffle.py”和“patch”方法)。
此包包含一个django模板解析器,可用于查找模板
包含无法转义的变量。此包当前具有
不了解自定义过滤器、自定义标记和python代码(例如
标记为安全)。该代码只针对django版本>;=1.5和<;=1.7进行了测试。
要求
*django>;=1.5和<;1.8
*lxml
用法
通过运行
>;`python-m django_xss_detection.cli`
它是如何工作的?
该代码通过猴子修补django模板代码并通过
到variablenode的回调函数,最终引用
“compileStringWrapper.handle_callback”方法。使用回调函数
稍后当代码“呈现”给定模板并遇到变量节点时
无法逃脱。非引用变量节点检测的实现
缺少javascript上下文中的元素属性和变量节点
javascript转义不是通过回调实现的,请参见
“为模板获取非引用的属性变量”和
parse_template.py中的'get_non_js_escaped_results_for_template'。
此外,代码还修改了内置条件标记的版本,
例如{%if%}和{%ifequal%},以便“呈现”所有可能的模板
代码。如果此包无法处理您的自定义模板标记,则
您可以添加对它们的支持,类似于“华夫饼”模板标记
实现(参见“util.py”中的“templatetags/waffle.py”和“patch”方法)。