2 wjpaiinnngg wjpaiinnngg 于 2014.12.06 15:43 提问

怎么防止html注入式攻击

写了一个简单的jsp。三个控件
一个text,一个password,一个submit
当点击submit时,跳转到另外一个页面,并输出前一个页面的text内容

问题是当在text中输入一些html的标签如:时
在跳转页中会把这些字符串变成html的控件,而不是字符串,有什么办法吗?

5个回答

showbo
showbo   Ds   Rxr 2014.12.06 20:03
已采纳

将<>替换为对应的实体对象<和>就行

showbo
showbo 替换后在回发就不会将客户端提交的html代码作为html对象显示出来了。<>替换为&lt;和&gt;
3 年多之前 回复
showbo
showbo 回复wjpaiinnngg:垃圾csdn将我发的实体对象给显示出来了,就是将<>替换为&amp;lt;和&amp;gt;这样就直接显示出尖括号,而不是html对象了
3 年多之前 回复
wjpaiinnngg
wjpaiinnngg 那发送回客户端的时候呢?不是还要转变为标签么?
3 年多之前 回复
caozhy
caozhy   Ds   Rxr 2018.01.04 23:53

还是bobo回答的对

caozhy
caozhy   Ds   Rxr 2018.01.04 23:53

还是bobo回答得对

caozhy
caozhy   Ds   Rxr 2014.12.06 18:50

在服务器端对输入的内容中的特殊符号,比如<>这些做过滤处理,或者进行htmlencode编码。

wjpaiinnngg
wjpaiinnngg 我关心的是服务器发送回客户端时,原本是内容,可到客户端的浏览器却变成了标签。。。
3 年多之前 回复
qiujuer
qiujuer   2014.12.07 15:09

提交时使用JS进行过滤一次进行unicode编码转换;后面接收到后进行反编码转换就ok。
同时如果需要写进数据库的话还需要进行一些字段的过滤;因为有些符号会引起SQL的作用。

当然你也可以使用存储过程等操作。

qiujuer
qiujuer 回复wjpaiinnngg: 可以 详细说一下 你的流程么?还有 要达到的需求
3 年多之前 回复
wjpaiinnngg
wjpaiinnngg 可是用http发送回客户端时还是html标签,在客户端中还是会变成控件的。。。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
SQL的注入式攻击方式和避免方法
出处:http://www.cnblogs.com/xyd21c/archive/2010/12/09/1901140.html感谢分享 SQL 注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到 SQL Server 的实例以进行分析和执行。任何构成 SQL 语句的过程都应进行注入漏洞检查,因为 SQL Server 将执行其接收到的所有语法有效的查询
什么叫做SQL注入式攻击,如何防范?
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。 防范SQL注入式攻击闯入并不是一件特别困难的事情,只要在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番就可以了。过滤输入内容
C#防止注入式攻击的方法
public bool Exists(int ID) { StringBuilder strSql=new StringBuilder(); strSql.Append("select count(1) from T_AfterSaleCustomer"); strSql.Append(" where ID=@ID "); SqlParameter[] parameters = { n
如何防止SQL注入攻击
如何防止SQL注入攻击            一、什么是SQL注入式攻击?   所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。常见的SQL注入式攻击过程类如:   ⑴ 某个A
C# 防止SQL注入式攻击
C#防止SQL注入式攻击C#防止SQL注入式攻击
js防止注入式攻击的脚本收藏
  cite.fav_csdnstylebykimi { font-style: normal; margin: 0 0 0 5px; display: inline; text-decoration: none; padding: 0; } cite.fav_
过滤非法字符,防止注入式攻击等
/// /// 过滤字符 /// public static string Filter(string sInput) { if (sInput == null || sInput.Trim() == string.Empty) return null;
注入式攻击的实例
注入式攻击的实例,适合大家研究防止被注入式攻击。
PreparedStatement 为什么能够防止注入式攻击
其实是预编译功能,用preparedstatement就会把sql的结构给数据库预编译。SQL注入 攻 击 是利用是指利用 设计 上的漏洞,在目 标 服 务 器上运行 Sql语 句以及 进 行其他方式的 攻 击 , 动态 生成 Sql语 句 时 没有 对 用 户输 入的数据 进 行 验证 是 Sql注入 攻 击 得逞的主要原因。 对 于 JDBC而言, SQL注入 攻 击 只 对 Statem
Access数据库注入方法及防范
Access数据库想对于MsSql来说可谓小巫见大巫,但是Acc的数据库在目前国内还是有一定的市场,其注入也很灵活。相信你看完本文就会了解到Access也是很强大的。 一,基础篇 1、猜解表名,这里借用啊D的语句: and exists (select * from 表名) 2、猜解列名: and exists (select 字段 from 表名) UNION法,在执行union之前