我的上传页面是在一个主页面中用showModalDialog或iframe打开的一个上传页面upload.aspx文件;这样如何禁止用户直接在IE打开我只个upload.aspx页面上传文件,而不通过我的showModalDialog或者iframe去打开尼?

解决方案 »

  1.   

    在upload.aspx的外层iframe页面写一个cookie,调用upload.aspx的时候读cookie
    没有就提示错误,然后返回外面的页面
      

  2.   

    嗯 。或是判断一下。SESSION是否为空,为空就不许使用(前提是你要在用户登陆时把用户名写进SESSION)这样做比Cookie安全多一点。不过此举也比较费服务器资源。权横 一下楼自己看着办最后麻烦你来顶一下我的贴子http://community.csdn.net/Expert/topic/4476/4476626.xml?temp=.3667261
      

  3.   

    判断上一页的来源是否为空
    javascript:document.referrer
      

  4.   

    如果用户登陆后直接在IE打开upload.aspx不也有session吗?
    如果用户在本机写一个html页,再用showModalDialog或者iframe嵌入我的upload.aspx,前面加上http://www.xxxx.net/upload.aspx不就上一页的来源是也不为空javascript:document.referrer这样判断也好想不行啊!
      

  5.   

    *********(此例适合框架)**********
    在被包含的页(upload.aspx)中这样写
    <script>
    if (self == top)
    {
         location="index.aspx";
    }
    </script>
    ==========================
    此处的index.aspx为包含这个页的那个页,这里是跳转,你也可以做弹出提示等操作。
    =================================
    =================================
    还有一个方法,没有实验:
    你在打开这个页的时候传递一个参数进来,然后判断就可以了,比如:
    response.write("<script>window.showModalDialog('upload.aspx?flag=1');</script>")
    然后在upload.aspx中判断,如果request("flag")<>1那么就不是从你要传的页传过来的。
      

  6.   

    x1234521(Server.net)的方法别人还是可以在本地机器伪造一个web页面,在此web框架里再添加一个src="http://www.XXXX.COM/UPLOAD.ASPX";同理response.write("<script>window.showModalDialog('upload.aspx?flag=1');</script>")
    也是可以伪造出来的