Web开发原则

  • 原则一
  1. 最小权限原则(不是”不允许…”而是”只允许…”)
  • 原则二
  1. js浏览器端 & c#服务器端原则
  2. <asp:button>.onClientClick属性 //渲染生成代码在浏览器端
int i = 2;
i++;
Response.Write(“<script type=‘text/javascript’>alert(”+i+”)</script>”);
  //对于浏览器端来说生成的HTML代码就是一堆字符串 到了浏览器端才有意义才会执行
  1. 服务器端MessageBox.Show(“服务器端!”)
LoopBack/回环地址(Localhost:2209/127.0.0.1): 访问本机/数据不走网卡 无法外部访问(如想外部访问可通过绑定本机地址或0.0.0.0(任意IP/AnyIP))
  • 原则三
  1. 代码尽量浏览器端完成原则
  2. 元素隐藏
document.getElementById(*).style.display = “display”; //尽量浏览器端完成代码
  • 原则四
  1. 浏览器端不可信任原则
  2. 客户端验证不能代替服务端验证(客户端校验为了客户体验 防止频繁刷新/服务端校验为了最后把关)
onClientClick=
“var i = document.getElementById(*).value; 
if(parseInt(I,10) > 100){ alert(‘金额不能大于100’); return false; }” 
  //禁用JavaScript或直接模拟发送HTTP请求
  1. 浏览器端不要写敏感数据or算法
if($(“#username”).val()==“admin” && $(“#password”).val()==“123”)
     //浏览器端控件display=“none”(源代码中控件可见) 服务器端控件Visible=false(源代码中控件不可见)
  • 原则五
  1. 浏览器端仅可查看服务器端执行输出文本原则(可以查看js html/代码无法查看aspx cs代码)
  • 原则六
  1. XSS漏洞(Cross-site scripting/跨站脚本漏洞):
Showmessage.aspx?msg=******
  //******(<script type=“text/javascript”>alert(“你中奖了!”)</script>)
  1. XSS漏洞原因: 参数直接显示
  2. XSS漏洞预防: 
①<%@ Page ValidateRequest=“false”> //禁止捕捉XSS漏洞(aspx文件默认设置)
②HttpUtility.HtmlEncode(***) //将字符串中的”<“ “/”等字符转换为html特殊字符(&lt $gt…)
(System.Web)HttpUtility类: 提供用于在处理Web请求时编码和解码 URL的方法
③Label & Literal控件: Label控件需手动调用HttpUtility.HtmlEncode()方法 / Literal控件将Mode属性设为”Encode”即可

posted on 2011-09-19 21:11  les_vies  阅读(148)  评论(0编辑  收藏  举报

导航