最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在博客中屏蔽垃圾留言的簡(jiǎn)單方法

 更新時(shí)間:2015年08月01日 15:54:26   作者:libuchao  
這篇文章主要介紹了在博客中屏蔽垃圾留言的簡(jiǎn)單方法,作者以Ruby on Rails搭建的博客應(yīng)用為例,需要的朋友可以參考下

垃圾留言俗稱(chēng) Spam,就是到處在留言框里發(fā)垃圾廣告的那些,相信大多數(shù)人都見(jiàn)識(shí)過(guò)。以前使用 WordPress 的時(shí)候,因?yàn)檠b了防 Spam 的插件,可以屏蔽掉絕大多數(shù)的 Spam。但是自從上個(gè)月從 WordPress 遷移到新的博客平臺(tái)后,第一天上線(xiàn)就遭遇了幾個(gè)Spam,全都是國(guó)外的推廣的廣告什么的。博客的訪問(wèn)量本身就很小,如果每天都來(lái)幾條 Spam,太煞風(fēng)景了,手工刪除也太浪費(fèi)時(shí)間,而且又是自己寫(xiě)的小系統(tǒng),也不可能有什么插件可選,只能自己想辦法解決了。

看到有很多網(wǎng)站都是加個(gè)驗(yàn)證碼來(lái)解決這個(gè)問(wèn)題的,因?yàn)?Spam 很難從圖片中識(shí)別出正確的驗(yàn)證碼,但是對(duì)于正常的留言者來(lái)說(shuō),又憑空多了一個(gè)步驟,那么除此之外還有什么方法能屏蔽這些 Spam 呢?

仔細(xì)分析一下,正常的留言應(yīng)該是人類(lèi)通過(guò)瀏覽器提交數(shù)據(jù)到我們的服務(wù)器,而 Spam 通常都是由固定的程序在互聯(lián)網(wǎng)上掃描評(píng)論表單,偽造表單中的數(shù)據(jù),然后判斷表單的action,然后將數(shù)據(jù) POST 到這個(gè)action上來(lái)。也就是說(shuō),Spam 發(fā)送方都沒(méi)有正常地通過(guò)瀏覽器訪問(wèn)過(guò)我們的表單頁(yè)面,也就是說(shuō),頁(yè)面上的 JavaScript 都沒(méi)有執(zhí)行過(guò)咯,明白這個(gè)特點(diǎn),那問(wèn)題就迎刃而解了。

首先,我們可以在表單中放一個(gè)隱藏的文本框,這個(gè)文本框?qū)φS脩?hù)來(lái)說(shuō)是不可見(jiàn)的:

<div style="margin:0;padding:0;display:inline">
  <input id="checkspam" name="checkspam" type="hidden" value="Hello Ruby" />
</div>

然后再寫(xiě)一小段 JavaScript 代碼來(lái)改變這個(gè)文本框的值:

jQuery(document).ready(function($) {
  $("#checkspam").val('abcdefg');
});

由于對(duì)于 Spam 發(fā)送者來(lái)說(shuō),這段 JavaScript 是沒(méi)有被執(zhí)行的,那么接下來(lái)要做的事情就是在服務(wù)端判斷這個(gè)隱藏文本框的值了,如果不是 JavaScript 所更改后的值,那么這條留言無(wú)疑就是 Spam 了(排除正常用戶(hù)的瀏覽器禁用 JavaScript 的情況)。

下面以 Ruby on Rails 應(yīng)用為例:

if params[:checkspam] == "abcdefg"
 @comment.save
else
 # It's a spam...
end

其實(shí),這個(gè)隱藏文本框的作用跟驗(yàn)證碼是一樣的,只不過(guò)這個(gè)驗(yàn)證碼是由 JavaScript 幫忙自動(dòng)輸入了。

用了這個(gè)方法至今一月有余,目前沒(méi)有再發(fā)生過(guò) Spam 的情況。

相關(guān)文章

最新評(píng)論

芜湖县| 宣武区| 卓资县| 区。| 宁陵县| 邯郸市| 石台县| 五莲县| 南乐县| 钟山县| 诸城市| 宜宾市| 京山县| 于都县| 利川市| 樟树市| 都昌县| 芒康县| 峨边| 定安县| 铜鼓县| 赞皇县| 金川县| 宝丰县| 沁水县| 北碚区| 邯郸市| 临武县| 如皋市| 潼关县| 大洼县| 博罗县| 彰化市| 滨州市| 岐山县| 顺昌县| 绿春县| 北宁市| 南澳县| 宜宾县| 莎车县|