国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

在博客中屏蔽垃圾留言的簡單方法

2020-02-24 15:36:51
字體:
供稿:網(wǎng)友

垃圾消息,通常稱為垃圾郵件,是那些在消息框中到處宣傳垃圾郵件的消息,我相信大多數(shù)人都見過他們,當(dāng)使用WordPress時,大多數(shù)垃圾郵件都會因為反垃圾郵件插件而被阻止,下面就讓武林技術(shù)頻道小編帶來的在博客中屏蔽垃圾留言的簡單方法。

自從上個月從 WordPress 遷移到新的博客平臺后,第一天上線就遭遇了幾個Spam,全都是國外的推廣的廣告什么的。博客的訪問量本身就很小,如果每天都來幾條 Spam,太煞風(fēng)景了,手工刪除也太浪費時間,而且又是自己寫的小系統(tǒng),也不可能有什么插件可選,只能自己想辦法解決了。

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

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

首先,我們可以在表單中放一個隱藏的文本框,這個文本框?qū)φS脩魜碚f是不可見的:

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

然后再寫一小段 JavaScript 代碼來改變這個文本框的值:

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

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

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

ruby;">if params[:checkspam] == "abcdefg" @comment.saveelse # It's a spam...end

其實,這個隱藏文本框的作用跟驗證碼是一樣的,只不過這個驗證碼是由 JavaScript 幫忙自動輸入了。

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

以上就是武林技術(shù)頻道關(guān)于在博客中屏蔽垃圾留言的簡單方法,其實只要你善于去思考,你會發(fā)現(xiàn)生活中處處都有驚喜。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 双桥区| 金沙县| 永丰县| 佳木斯市| 临江市| 蓝山县| 斗六市| 临邑县| 钟山县| 娱乐| 汤阴县| 蓝山县| 桑植县| 时尚| 阿鲁科尔沁旗| 唐山市| 永善县| 泽普县| 巴中市| 花垣县| 西丰县| 万荣县| 高台县| 南丰县| 门源| 崇阳县| 琼结县| 区。| 扎鲁特旗| 商丘市| 公安县| 西乡县| 黄龙县| 康乐县| 开阳县| 泸定县| 繁峙县| 尚志市| 水城县| 永川市| 石河子市|