客户端验证不能代替服务端验证
l 设置取款金额不能高于100元
• 客户端:<form
onsubmit="if(parseInt(document.getElementById(‘TextBox1‘).value
,10)>100){alert(‘最多只能取款100元‘);return false;}">
l 用户可以直接向服务器发Http请求(比如直接在地址栏中构造
jquerystring)绕过客户端浏览器检查来干坏事。
l 客户端校验是为了很好的客户端体验,服务器端校验是最后一次把关,
防止恶意请求。一个都不能少。jquery Validator+服务器端校验是不错
的开发模式
记住数据可以改哦
l 客户端藏起来、不显示也不一定安全。不要轻信用户提交上来的
数据:比如控制有的数据能删除、有的不能删除,如果只是隐藏
不能被删除的数据,而把id做为参数传递,就可能有问题。举例
l Http报文的UserAgent、Referer、Cookie等都是可以造假的,不
要相信这些可能会造假的数据。
ValidateRequest
l ASP.Net4.0之后会对ashx检测中默认对请求的数据进行了校验,如果数据中有<
、>等有潜在XSS攻击的字符,则会报错。对于一些CMS系统等确实需要提交
HTML内容的地方要关闭它,修改web.config,在<system.web>节点中加入
<httpRuntime requestValidationMode="2.0" /> 把验证变更为2.0模式。(*aspx
在页面顶部的Page中还要加入ValidateRequest="false") 。
l 这样的功能只能开放给网站编辑、系统管理员等可信的人,对于普通网友不能开
放。为什么?什么是XSS,基于之前开发的留言板项目来试验XSS(跨站脚本,
Cross-site scripting)
l 利用漏洞1:送奖品的消息框。
l 利用漏洞2:收集帐号、密码
CKEditor的使用
l 把除了_samples、_source、*.php、*.asp的放到js/ckeditor文件
夹下。
l 页面中引用ckeditor.js
l 页面中编辑器的位置使用textarea,在页面onload中或者在
textarea之后CKEDITOR.replace(textarea1);
l 原理?