1.ajax只会执行具有相同域名的请求。
不知道它是怎么判断的,如果恶意用户通过程序修改http header信息后,它还能正确识别用户请求来自非domain吗?
如果可以,他是怎么实现的呢?2.   假设一个友情链接系统,要求外链来得最高的显示在最前面,我们通常通过reference来获取网址请求来自何处,然后适当处理信息更新到数据库。可当一个恶意用户通过程序修改http header信息,会使得我们的reference判断失去准确性——他可以作弊,始终让他的网站显示在最前面。(当然,一般的友情链接系统要求没这么高) 3. 如果1中回答是肯定的,我想仿效ajax的方法4.可能钻了牛角尖,被迷惑了
  

解决方案 »

  1.   

    呵呵,楼主问的这个问题其实跟javascript是否可以执行跨站脚本,以及执行跨站脚本的前提条件是类似的
      

  2.   

    各位大虾,给小弟说下防止作弊的思路啊。
    “获取网址请求来自何处”是在Page_Load里面判断的
    有没有其他判断方法?
      

  3.   

    httpheader包括httprequest和httpresponse,httprequest是只读的,httpresponse是可写的
    也就是说,你的程序发送请求时,被请求的程序看到的你的httpheader是真实的,而他给你回复的httpheader可能是更改过的
    所以不存在你说的别人更改httpheader再过来请求你的页面的问题,除非你自己写个浏览器用,要那样web哪里还有安全性可言
      

  4.   

    好像我的意思就是hacker自己写浏览器
      

  5.   

    难道hacker自己写个“模拟浏览器”真那么难?firefox还是开源的嘛
    那google的AdSense是如何防止恶意用户的?
      

  6.   

    顶你哈!“除非你自己写个浏览器用,要那样web哪里还有安全性可言”这一点感觉不怎么对,如果安全性要求很高了,比如说银行,都会安装一个客户端软件的,就在一定程度上解决了安全性啊。不过这样子,好像就不是单纯的b/s了哈。
    不过,google的AdSense还是很高级,他可没要求安装客户端
      

  7.   

    “除非你自己写个浏览器用,要那样web哪里还有安全性可言”这一点感觉不怎么对,如果安全性要求很高了,比如说银行,都会安装一个客户端软件的,就在一定程度上解决了安全性啊。不过这样子,好像就不是单纯的b/s了哈。 
    ----------
    人家装那个是为了安全,比如怕密码被木马等盗取,或者怕被网上截获,他们做的安全是加密方面的,但就请求的主机头来说,是只读的,你不可能伪造,你可能伪造的,是你返回的主机头