页面安全相关处理

页面安全

一、页面禁止复制操作

1、通过 JavaScript 实现

我们可以通过 JS 代码来禁用网页的复制事件、剪切事件、选择内容事件甚至是右键菜单事件。

// 禁止右键菜单
document.oncontextmenu = function(){ return false; };
// 禁止文字选择
document.onselectstart = function(){ return false; };
// 禁止复制
document.oncopy = function(){ return false; };
// 禁止剪切
document.oncut = function(){ return false; };

2、通过 HTML 实现

除了上面提到的方法,我们也可以通过设置标签属性的方式直接禁用页面复制剪切操作:

<body 
    oncopy="return false" 
    oncut="return false;" 
    onselectstart="return false" 
    oncontextmenu="return false"
>
<!--……-->
</body>

该方法本质上与 JS 实现方式相同。

通过以下 JS 代码可以恢复页面复制、剪切及内容选中功能:

document.body.oncopy = null;
document.body.oncut = null;
document.body.onselectstart = null;
document.body.oncontextmenu = null;

3、通过 CSS 实现

我们也可以通过 CSS 样式,禁止页面内容被选中,从而达到限制复制操作的目的:

body {
  -moz-user-select:none; /* Firefox私有属性 */
  -webkit-user-select:none; /* WebKit内核私有属性 */
  -ms-user-select:none; /* IE私有属性(IE10及以后) */
  -khtml-user-select:none; /* KHTML内核私有属性 */
  -o-user-select:none; /* Opera私有属性 */
  user-select:none; /* CSS3属性 */
}# 二、基于 HTTP 协议的 referer

二、防止网址被 iframe

在页面底部或其它公用部位加入如下代码:
// 用js方法检测地址栏域名是不是当前网站绑定的域名,如果不是,则跳转到绑定的域名上来,这样就不怕网站被别人iframe了

if(window!=parent) {
    window.top.location.href = window.location.href; 
}

三、利用nginx

可以通过 nginx 配置白名单列表,不在白名单则返回 403 或者相应的处理(重定向到显示403的图片,等操作)

location ~* \.(gif|jpg|jpeg|png|bmp|swf|flv)$ {    
    valid_referers none blocked *.andyhu.com server_names ~\.google\. ~\.baidu\.;    
    if ($invalid_referer) {        
        return 403;        
        #rewrite ^/ http://www.xxx.com/403.jpg;    
    }
}

以上所有来自 *.andyhu.com 域名和域名中包含 google 和 baidu 的站点都可以访问当前站点的gif|jpg|jpeg|png|bmp|swf|flv文件资源。其他来源域(不在白名单列表)名访问则返回 403。如果被注释的 rewrite 则返回一张 403.jpg 的图片

四、登录验证,禁止游客访问

登录验证这种就属于一刀切的方式,一般在论坛、社区类网站使用比较多,不管你发起请求的站点是什么,到我这先登录,没登录请求直接拒绝,简单又粗暴。

五、图形验证码

图形验证码是一种比较常规的限制办法,比如:下载资源时,必须手动操作验证码,使爬虫工具无法绕过校验,起到保护资源的目的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值