Checkmarx 反射型 XSS
Checkmarx Reflected XSS
我有一个基于 Django 的 API。在用 CheckMarx 扫描我的应用程序后,如果显示我在这里有 Reflected XSS volnurability:
user_input_data = json.loads(request.GET.get('user_input_data'))
我已经尝试过的:
- 二手
django.utils.html.escpae
- 二手
django.utils.html.strip_tags
- 二手
html.escape
- 已使用
escapejson
套餐
每次我运行扫描时,它都会在这个位置找到存储的XSS
您尝试的是正确且可以接受的,但 Checkmarx 对 Django 的支持有些有限,这就是它无法识别您使用的任何功能的原因。您需要就此与您的安全团队争论,并让他们认识到这是防止 XSS 的正确方法之一。
通过使用替换函数和替换“<”和“>”字符来清理输入的基本方法。这不是一种稳健的方式,但这是 Checkmarx 认可的方式
def escape(s, quote=None):
'''Replace special characters "&", "<" and ">" to HTML-safe sequences.
If the optional flag quote is true, the quotation mark character (")
is also translated.'''
s = s.replace("&", "&") # Must be done first!
s = s.replace("<", "<")
s = s.replace(">", ">")
if quote:
s = s.replace('"', """)
return s
来自此代码段 post
我有一个基于 Django 的 API。在用 CheckMarx 扫描我的应用程序后,如果显示我在这里有 Reflected XSS volnurability:
user_input_data = json.loads(request.GET.get('user_input_data'))
我已经尝试过的:
- 二手
django.utils.html.escpae
- 二手
django.utils.html.strip_tags
- 二手
html.escape
- 已使用
escapejson
套餐
每次我运行扫描时,它都会在这个位置找到存储的XSS
您尝试的是正确且可以接受的,但 Checkmarx 对 Django 的支持有些有限,这就是它无法识别您使用的任何功能的原因。您需要就此与您的安全团队争论,并让他们认识到这是防止 XSS 的正确方法之一。
通过使用替换函数和替换“<”和“>”字符来清理输入的基本方法。这不是一种稳健的方式,但这是 Checkmarx 认可的方式
def escape(s, quote=None):
'''Replace special characters "&", "<" and ">" to HTML-safe sequences.
If the optional flag quote is true, the quotation mark character (")
is also translated.'''
s = s.replace("&", "&") # Must be done first!
s = s.replace("<", "<")
s = s.replace(">", ">")
if quote:
s = s.replace('"', """)
return s
来自此代码段 post