Django的form提交js注入问题

本文介绍了如何在刚上线的网站上防止JS注入攻击,通过使用Django的escape或escapejs过滤器,以及结合正则表达式来确保表单数据安全。方法包括避免`<script>`标签注入、使用HTML转义,并举例展示了如何在代码中具体实现这些策略。
摘要由CSDN通过智能技术生成

我的网站刚刚正式上线,就被人用js注入了alert。也是无聊,我正忙着笔试呢没空修复。现在修复一下。
就说对form提交的数据进行js转义就行了。
建议直接方法3
方法一
在django中用escape 或 escapejs过滤器
其实django模板已经做了防止js注入,但是我们又想在页面中正常显示我们在form表单中提交的和标签等。所以用了safe过滤器告诉浏览器是可信的,正常渲染。

{{ content | safe }}

但是,这样就会造成恶意人员实施js注入:
在表单中评论

<script>alert("哈哈哈")</script>

导致网页一直弹出哈哈哈
要解决它我们可以在内容处添加过滤器

{{ content | escape }}
# 或者
```python
{{ content | escapejs }}

方法2
使用html的escape转义

import html

html.escape(content)

方法3
之前那样处理会造成自己的,img标签也被转义。
这样处理就好了,re过滤一下

# 防止js注入
re_script = re.compile(r'<script>(.*?)</script>')
if re_script.search(content):
	content = html.escape(content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大聪明Smart

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值