C# 关于防止盗链问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 14:00:13
我现在做这样一个功能
我有一些教材文件,是htm格式的,比如“教材A.htm”,“教材B.htm”等等,我通过FTP把这些教材文件上传到网站服务器上根目录下的UploadFile文件夹里,然后把这些教材的路径记录下来存到数据库里,
例如:
id name url
1 教材A /UploadFile/教材A.html
2 教材B /UploadFile/教材B.html

登陆后的会员可以通过点击教材名字进入一个处理页面detail.aspx?id=1,然后根据ID读出路径显示出来<iframe src=""></iframe>,现在是怕别人盗链,直接外部输入http://域名/UploadFile/教材A.html就可以看得到教材,想请教一下有没有什么好的办法来防止?
其实这些教材是PPT文件转换成htm格式的,所以有很多htm页面和图片,如果要改后缀名的话要更新很多页面和链接,这样虽然可行但是比较麻烦,看看有没有比较好的方法

可以弄个专门的防盗链处理类,在web.config里面配置下,让所有html均自动跳转到该类中去处理,可在类中判断正在访问的这个页面是不是数据库中保存的这些页面,是的话就自动跳转到另个页面提示禁止外部访问。如果是内部访问的话,可以直接通过detail.aspx?id=1这个页面通过id的方式得到页面文件的路径,比如: /UploadFile/教材A.html
那可以直接通过Response.WriteFile("文件地址")的方式,直接把页面文件的内容输出到detail.aspx页面里,这样就不需要通过iframe的方式显示了。

哥们,htm页不能编程 又不能保存状态 怎么防盗链?
?建议换aspx页 就能把登陆这信息存到Session中 让后验证,要不怕麻烦就url重写下 隐藏url

告诉你一个小技巧..
前提是我发现你的有个关键条件
是放在<iframe src=""></iframe>中显示.

那么在所有的html中加判断,只要父窗体不是本网站则自动跳转到你的网站处理页面detail.aspx?id=

明白了?.一段JS代码.

具体的一般我都不提倡告诉别人,给别人思路,自己想出来的可以扩展很多功能的.