首页 新闻 赞助 找找看

编写网站安全代码问题

0
悬赏园豆:15 [已关闭问题]

防止跨站的方法一般说是对输入过滤,对输出编码

1、对可以任意输入的内容,例如备注,在客户端或服务端的过滤具体应该怎么处理?

2、用Gridview绑定数据库表时,是否要对备注这样的字段进行编码?用第三方的Gridview,比如Jquery的表格,或者自己写的表格,又是否需要呢?

3、怎样确保两个页面使用URL传递的参数的正确性?比如传递一个“备注”参数,这个参数可以是任意内容,传递过去后是否要进行过滤校验?如何进行过滤

4、session,viewstate是否需要进行安全处理?

lost2x的主页 lost2x | 初学一级 | 园豆:102
提问于:2010-08-11 09:07
< >
分享
其他回答(1)
0

1,所有用户输入的地方都不能信认,前台后台并行验证,防止对方模似提交。

2,根据需要,如果你想把备注显示出HTML的效果,可以不做处理。但是可以过滤脚本信息,一般备注型只保留常用标签,使用正则过滤。

3,写一个请求工具类,整个项目的请求参数都要通过这个类的安全函数,在需要是整型,或字符型作出转换,并过滤相应安全字符,如SQL注入等。

4,如果是前台,用户一般采用Cookie,不采用ViewState编程方式,这样影响速度。

Astar | 园豆:40805 (高人七级) | 2010-08-11 09:55
谢谢! 2、如果可以输入任意字符,那么应该过滤什么?如果确实需要显示被过滤的字符,应该怎么处理? 3、请求工具类的功能是不是检查数据类型和过滤?能不能给出些过滤安全字符的参考? 4、cookie是否要进行安全处理?
支持(0) 反对(0) lost2x | 园豆:102 (初学一级) | 2010-08-12 09:57
主要是要看你这些任意字符是用来做什么,假如是在页面展示的内容,要过滤一些脚本等,防止跨站攻击,还要对每一个HTTP请求,如果有传参进来,都要对SQL注入安全进行过滤。先检查数据类型,整型就好处理了,字符型需要过滤一些SQL注入关键字。Cookie可以加密。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-12 10:02
0

防止不信认的数据需要做的工作有

1、设置输入框最大输入字符数(即设置文本框的MaxLength属性)。

2、确定输入框输入的数据类型。客户端用JS验证,加服务器端验证。

3、对于输入的是字符串数据时,需要有服务器端对输入的数据进行HTML编码再存入数据库或使用(为防止脚本注入)

4、为防止SQL注入,多用参数形式的存储过程来跟数据库交互(即在存储过程中也不要用SQL拼凑),如一定要用SQL拼凑执行SQL语句,那在数据拼凑前进行SQL关键字过滤。

5、对于URI传过来的参数,也要对其进行数据类型验证和HTML编码。

阿松 | 园豆:601 (小虾三级) | 2010-08-11 14:55
谢谢! 3、对输入进行编码再存入数据库,那么数据库保存的内容和输入不一致,在每一次使用,例如导出表格,或者在页面显示表格之前,都需要先对所有字符串类型的数据进行html解码?
支持(0) 反对(0) lost2x | 园豆:102 (初学一级) | 2010-08-12 10:03
输出之那要看数据显示在哪里了。如果显示在页面上那不需要解码直接以编码的方式显示,不然就白编码了,还是会有脚本注入漏洞了。如果数据要显示表单输入框中那就是解码过,不然用户修改数据时会发现自己的数据跟之前输入的数据不一样了。如果数据导出到别的文件也要解码过 (除XML文件外)
支持(0) 反对(0) 阿松 | 园豆:601 (小虾三级) | 2010-08-13 20:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册