首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JS防止站点被恶意保存

很多同学网站都在用静态博客,安全轻量的同时也带来了些许麻烦,正如首图中那样,站点被别人全盘撸走,反而比自己文章关键字还高.自己辛辛苦苦的耕耘变成了别人的果实…所以本文提供一下通过JS手段防止网站被扒皮的手段...进入正题: 因为站点是纯静态的,所以没办法防止网页被扒走,但是我们可以让他扒走的网页 用不了… 对静态资源设置防盗链,判断可信域名…不过很多同学都放在 coding/github 之类的 没有这种功能的托管商...= top){ location.href="https://huai.pub"; } //防止被嵌套....let whitelist=['huai.pub','127.0.0.1','localhost','']; //host白名单;空的话,为以file类型打开,是为了防止保存到本地调试,如果不担心此条...把上面部分放到一个不得不运行且打开页面就运行的JS里面(不建议放到公共资源部分,比如 jQuery之类的 )…当然 需要按照注释修改为自己的参数; 之后将这条JS 加密 然后将第二部分放到页面底部的JS

3.8K20

【Java面试小短文】怎样防止缓存击穿?

怎样防止缓存击穿?   实际用里面,我们会在程序和数据库之间增加一个缓存层。一方面呢是为了提数据的检索效率,提升程序的性能,另外一方面,是为了缓解数据库的并发压力。   ...缓存击穿表示请求因为某些原因全部打到了数据库,缓存并没有起到流量缓冲的作用。   ...有两种情况会导致缓存击穿 1.在redis里面,保存的热点key在缓存过期的瞬间,有大量的请求进来,导致请求全部打到数据库里。...2.对于访问量较高的缓存数据,可以设计多级缓存,尽量减少后端存储设备的压力。 3.使用分布式锁。...当发现缓存失效的时候,不是先从数据库加载数据,而是先去获取分布式锁,获取到分布式锁的线程从数据库查询到数据后写回到缓存里面,后续没有获得锁的线程只需要等待和重试就行,这样就能避免大量请求打到后端存储设备的问题

16810

布隆过滤器实战【防止缓存击穿】

适合的场景 数据库防止穿库 Google Bigtable,Apache HBase和Apache Cassandra以及Postgresql 使用BloomFilter来减少不存在的行或列的磁盘查找。...如果数据量较大,不方便放在缓存中。需要对请求做拦截防止穿库。 缓存宕机 缓存宕机的场景,使用布隆过滤器会造成一定程度的误判。...当然,缓存宕机时使用布隆过滤器作为应急的方式,这种情况应该也是可以忍受的。 WEB拦截器 相同请求拦截防止被攻击。...开源项目地址:https://github.com/luw2007/bloomfilter 我们先看看一般业务缓存流程: ? 先查询缓存缓存不命中再查询数据库。...然后将查询结果放在缓存中即使数据不存在,也需要创建一个缓存,用来防止穿库。这里需要区分一下数据是否存在。 如果数据不存在,缓存时间可以设置相对较短,防止因为主从同步等问题,导致问题被放大。

1.5K30

布隆过滤器实战【防止缓存击穿】

为什么引入 我们的业务中经常会遇到穿库的问题,通常可以通过缓存解决。如果数据维度比较多,结果数据集合比较大时,缓存的效果就不明显了。因此为了解决穿库的问题,我们引入Bloom Filter。...适合的场景 数据库防止穿库 Google Bigtable,Apache HBase和Apache Cassandra以及Postgresql 使用BloomFilter来减少不存在的行或列的磁盘查找。...如果数据量较大,不方便放在缓存中。需要对请求做拦截防止穿库。 缓存宕机 缓存宕机的场景,使用布隆过滤器会造成一定程度的误判。...当然,缓存宕机时使用布隆过滤器作为应急的方式,这种情况应该也是可以忍受的。 WEB拦截器 相同请求拦截防止被攻击。...可以提高缓存命中率 恶意地址检测 chrome 浏览器检查是否是恶意地址。

1.1K10

使用 HTTP 缓存防止不必要的网络请求

浏览器的 HTTP 缓存是您的第一道防线。 它不一定是最强大或最灵活的方法,它对缓存响应的生命周期的控制有限,但它是有效的,所有浏览器都支持它,并且不需要太多工作。...如果匹配,则从缓存中读取响应,从而消除网络延迟和传输产生的数据成本。 HTTP 缓存的行为由请求标头和响应标头的组合控制。...以下标头都会影响有效的缓存行为: Cache-control: 服务器可以返回一个 Cache-Control 指令来指定浏览器和其他中间缓存应该如何缓存单个响应以及缓存多长时间。...在浏览器缓存响应后,缓存版本将一直使用,直到它不再是最新的,这由 max-age 或 expires 决定,或者直到它因某些其他原因从缓存中被驱逐——例如,用户清除他们的浏览器缓存。...no-store: 这会指示浏览器和其他中间缓存(如 CDN)从不存储文件的任何版本。 private: 浏览器可以缓存文件,但中间缓存不能。 public: 响应可以由任何缓存存储。

1.8K10

js节流函数和js防止重复提交的N种方法

应用情景 经典使用情景:js的一些事件,比如:onresize、scroll、mousemove、mousehover等; 还比如:手抖、手误、服务器没有响应之前的重复点击; 这些都是没有意义的,重复的无效的操作...同样节流函数也是为了解决函数重复提交的问题,而防止重复提交的方法,不止节流函数一种实现。 方法汇总 本文整理了我在工作实践当中,觉的防止js重复提交,比较好用的方法,在这里和大家分享一下。...一、setTimeout + clearTimeout(节流函数)   本文提供两种实现方式:普通节流函数和闭包节流函数 二、设定flag/js加锁 三、通过disable 四、添加浮层比如loading...图层防止多次点击 具体实现 一、setTimeout + clearTimeout(节流函数) 方式一:闭包节流函数(可传递多个参数) /** * 闭包节流函数方法(可传参数) * @param Function...二、设定flag/js加锁 var lock = false; jQuery("#submit").on('click', function () { if (lock) { return

8.4K40

js节流函数和js防止重复提交的N种方法

应用情景 经典使用情景:js的一些事件,比如:onresize、scroll、mousemove、mousehover等; 还比如:手抖、手误、服务器没有响应之前的重复点击; 这些都是没有意义的,重复的无效的操作...同样节流函数也是为了解决函数重复提交的问题,而防止重复提交的方法,不止节流函数一种实现。 方法汇总 本文整理了我在工作实践当中,觉的防止js重复提交,比较好用的方法,在这里和大家分享一下。...一、setTimeout + clearTimeout(节流函数)   本文提供两种实现方式:普通节流函数和闭包节流函数 二、设定flag/js加锁 三、通过disable 四、添加浮层比如loading...图层防止多次点击 具体实现 一、setTimeout + clearTimeout(节流函数) 方式一:闭包节流函数(可传递多个参数) /** * 闭包节流函数方法(可传参数) * @param Function...二、设定flag/js加锁 var lock = false; jQuery("#submit").on('click', function () { if (lock) { return

4.6K120

怎么防止同事用Evil.js的代码投毒

最近Evil.js被讨论的很多,项目介绍如下项目被发布到npm上后,引起了激烈的讨论,最终因为安全问题被npm官方移除,代码也闭源了作为一个前端老司机,我肯定是反对这种行为,泄私愤有很多种方式,代码里下毒会被...还不如离职的时候给老板一个大逼兜来的解恨今天我们来讨论一下,如果你作为项目的负责人,如何甄别这种代码下毒欢迎加入前端学习,一起上王者,交个朋友下毒手法最朴实无华的下毒手法就是直接替换函数,比如evil.js...Illl'})`,sandbox)console.log(sandbox)复制代码ShadowRealm APITC39有一个新的ShadowRealm api,已经stage3了,可以手动创建一个隔离的js.../anti-evil.js">function isNative(fn){ return fn.toString() === `function ${fn.name}() {

3K20

怎么防止同事用Evil.js的代码投毒

视频移步B站最近Evil.js被讨论的很多,项目介绍如下图片项目被发布到npm上后,引起了激烈的讨论,最终因为安全问题被npm官方移除,代码也闭源了作为一个前端老司机,我肯定是反对这种行为,泄私愤有很多种方式...还不如离职的时候给老板一个大逼兜来的解恨今天我们来讨论一下,如果你作为项目的负责人,如何甄别这种代码下毒欢迎加入前端学习,一起上王者,交个朋友下毒手法最朴实无华的下毒手法就是直接替换函数,比如evil.js...:'Illl'})`,sandbox)console.log(sandbox)ShadowRealm APITC39有一个新的ShadowRealm api,已经stage3了,可以手动创建一个隔离的js.../anti-evil.js">function isNative(fn){ return fn.toString() === `function ${fn.name}() {

3.6K20

防止页面url缓存中 ajax中post 请求的处理方式

一般我们在开发中经常会用到Ajax请求,异步发送请求,然后获取我们想要的数据,在Ajax中使用Get请求数据不会有页面缓存的问题,而使用POST请求可是有时候页面会缓存我们提交的信息,导致我们发送的异步请求不能正确的返回我们想要的数据...下面介绍一种方式来防止ajax中post 请求 页面缓存 url 信息: $.post(url,data ,ranNum:Math.random()} ,function(data){ if(...}else{ alert("error"); } }) url : 请求的URL 地址 data : 请求的数据 ranNum : 这个是防止缓存的核心...,每次发起请求都会用Math.random()方法生成一个随机的数字,这样子就会刷新url缓存 这个ranNum的生成方式有多种形式,你也可以按照自己的生成方式进行生成,只要确保生成数据的时候是随机的就好...这就是Ajax防止发送请求的时候防止url缓存的方法。

1.5K20
领券