客户端不可信,服务器端也要做验证

来源:互联网 发布:新版淘宝联盟返利教程 编辑:程序博客网 时间:2024/06/07 03:24
客户端验证不能代替服务器端验证
用户可以直接向服务器发Http请求(比如直接在地址栏中构造请求数据,绕过客户端浏览器检查来干坏事。
客户端校验是为了很好的客户端体验,服务器端校验是最后一次把关,防止恶意请求。

一个都不能少。jQuery Validator+服务器端校验是不错的开发模式。

记住数据可以改哦

客户端藏起来、不显示也不一定安全。不要轻信用户提交上来的数据:
比如控制有的数据能删除、有的数据不能删除,如果只是隐藏不能被删除的数据,
而把id作为删除参数传递,就可能有问题。

Http报文的UserAgent、Referer、Cookie等都是可以造假的,
不要相信这些可能会造假的数据。

ValidateRequest
ASP.NET4.0之后会对ashx检测中默认对请求的数据进行了校验,
如果数据中有<、>等有潜在XSS供给的字符,则会报错。对于一些
CMS系统等确实需要提交HTML内容的地方要关闭它,修改web.config,
在<system.web>节点中接入<httpRuntime requestValidationMode="2.0" />
把验证变更为2.0模式。(*.aspx在页面顶部的Page中还要加入
ValidateRequest="false")

这样的功能只能开放给网站编辑、系统管理员等可信的人,对于普通网友不能开放。为什么?
什么是XSS,(跨站脚本,Cross-site scripting)。

CKEditor和UEditor(百度)等很多编辑样式的第三方控件。




摘自:传智播客视频教材

0 0
原创粉丝点击