开发学院网络安全黑客技术 温柔的杀手——跨站ASP Script攻击 阅读

温柔的杀手——跨站ASP Script攻击

 2006-11-06 19:58:24 来源:WEB开发网   
核心提示: function checkForm() { document.forms[0].userName.value = _ RemoveBad(document.forms[0].userName.value); return true; } // MICROSOFT'S CODE f

function checkForm() {

document.forms[0].userName.value = _

RemoveBad(document.forms[0].userName.value);

return true;

}

// MICROSOFT'S CODE

function RemoveBad(strTemp) {

strTemp = strTemp.replace(/</>/"/'/\%/;/(/)/&/+/-/g,"");

return strTemp;

}

用这个办法,可以过滤在输入中含有的这些字符:

% < > [ ] { } ; & + - " '( )

3.使用HTML和URL编码

尽管使用上面所说的过滤和限制输入的办法是一种非常重要用防御手段,但它对我的这种采用邮件方式的攻击还是无能为力。因为我把URL的参数直接放在邮件中。针对这种情况我们不得不采取一种更有力的安全措施。如果我们用的ASP,解决起来相对说来要容易得多。只要对动态生成的网页总进行HTML和URL编码就行了。针对我们例子中的情况,在第一输入页中我们对redirect URL作了如下改动:

strRedirectUrl = strRedirectUrl & _

server.URLEncode(Response.Cookies("userName"))

在执行页中我们加入:

strUserName =server.HTMLEncode(Request.QueryString("userName"))

strUserName =server.HTMLEncode(Request.Form("userName"))

微软推荐对所有动态页面的输入和输出都应进行编码。甚至在对数据库数据的存入和取出也应如此。这样你就能在很大程度上避免跨站script的攻击。

要做到这些还要在Page1.asp中加入:


<%@ Language=VBScript %>


<% If Request.Cookies("userName") <> "" Then

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:温柔 杀手 ASP

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接