html 中 textarea input 的输入、存储、显示 与 xss 防御

html 中 textarea input 的输入、存储、显示 与 xss 防御。需求如下:存储用户在 textarea input 中输入的原始数据(非转义后的数据),并可以正确显示,同时要避免 xss 攻击。存在的问题:使用 div 显示数据时,标签会被错误解析,同时会遭到 xss 攻击。为了避免 xss 攻击,通常的做法是修改用户输入的数据,如将 < 修改为 &l...
摘要由CSDN通过智能技术生成

html 中 textarea input 的输入、存储、显示 与 xss 防御。需求如下:

存储用户在 textarea input 中输入的原始数据(非转义后的数据),并可以正确显示,同时要避免 xss 攻击。

存在的问题:使用 div 显示数据时,标签会被错误解析,同时会遭到 xss 攻击。为了避免 xss 攻击,通常的做法是修改用户输入的数据,如将 < 修改为 &lt;,存在的问题如下:

存储真实数据,div 里显示数据前进行转义

如果要正确的在 div 上显示 textarea input 里输入的数据(避免 xss 攻击,同时显示 < 等标签),需要在获取到数据时,后台将 < 修改为 &lt;,同时还要过滤其他 xss 攻击。(但我早就放弃了这个方法,因为太麻烦了)

存储真实数据,用 pre 标签显示是否可以。

答:格式可以保留,但完全不能避免 xss 攻击。(除非输入存储的内容不包含特殊字符)

存储转义后的字符带来的问题1

如:用户输入的是 < ,则需要将 &lt;存储到数据库中。如果该字段的长度限制为1,保存时抛出异常。除非该字段设置的长度永远是用户输入字符长度的20倍以上,才能完全避免该问题。(前端用户输入 16 个字符,Mysql 中 v

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值