欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 防機(jī)器人

在當(dāng)前的互聯(lián)網(wǎng)世界中,越來(lái)越多的游客和使用者就像蝗蟲(chóng)一樣地襲擊了網(wǎng)站。大部分人聲稱他們的行為是為了人類利益,但其實(shí)他們的行為會(huì)極大地影響開(kāi)發(fā)者的網(wǎng)站質(zhì)量。所以,如何保護(hù)自己的站點(diǎn)不受非法機(jī)器人的攻擊成為了一個(gè)挑戰(zhàn)。Javascript的出現(xiàn)為我們提供了解決辦法。本文將介紹一些可以使用Javascript防止機(jī)器人攻擊的技巧。
Js寬窄字體檢測(cè)技術(shù)
本技巧基于一個(gè)問(wèn)題:自動(dòng)化機(jī)器人所提交的內(nèi)容與普通用戶所提交的內(nèi)容不同。自動(dòng)提交的內(nèi)容普遍都是通過(guò)程序生成的。所以,這種自動(dòng)化產(chǎn)生的內(nèi)容可能有一些奇怪的格式,例如特別小或特別大的字體。
下面是一個(gè)例子:
function zhWidthCheck(text){
var span=document.createElement("span");
span.style.position="absolute";
span.style.whiteSpace="nowrap";
span.style.zIndex="-100";
span.style.fontSize="1em";
span.innerHTML=text;
document.body.appendChild(span);
var width=span.offsetWidth;
document.body.removeChild(span);
return width;
}

這段代碼創(chuàng)建了一個(gè)元素,將其添加到當(dāng)前頁(yè)面的 body 元素中,并將其定位在屏幕外部,然后設(shè)置其白色空間,使其寬度只包含一行文本。 接下來(lái),我們?cè)O(shè)置其字體大小為 “1em” 并再次計(jì)算其寬度。 如果兩個(gè)寬度不一樣,那么根據(jù)我們所創(chuàng)建的規(guī)則,信息就是由機(jī)器人發(fā)送的。
如有需求,可以通過(guò)小改變來(lái)創(chuàng)建一個(gè)寬字體檢測(cè) scripting 來(lái)檢測(cè)是否有人使用了自動(dòng)提交方式。以上過(guò)程的關(guān)鍵在于用 Javascirpt 區(qū)分機(jī)器人的字體大小提交 vs 用戶的字體提交。
Referer檢查
Referer是HTTP協(xié)議頭中的一個(gè)字段,它可以用來(lái)指定網(wǎng)頁(yè)超鏈接到服務(wù)器的其他頁(yè)面的URL。在瀏覽器中打開(kāi)一個(gè)頁(yè)面時(shí),它會(huì)自動(dòng)發(fā)送Referer信息,告訴服務(wù)器從哪里訪問(wèn)這個(gè)頁(yè)面。但是,自動(dòng)化機(jī)器人不會(huì)發(fā)送Referer信息
以下示例演示了如何使用Referer檢查來(lái)防止機(jī)器人攻擊。
<code>
if(document.referrer.match(/^https?:\/\/([a-z]+\.)?google\.com/)){
alert("DAMN U SPAMMERZZZ!!");
}
</code>

在上面的代碼中,我們使用了 JavaScript 的 window.document.referrer 屬性,該屬性返回目前文檔所在線框架的URL。如果返回的 URL 匹配指定的正則表達(dá)式,那么該網(wǎng)站就可能被機(jī)器人攻擊,從而觸發(fā)警告。
其他技巧
除了上述技巧,還有其他一些可以使用 Javascript 防止機(jī)器人攻擊的技巧,例如設(shè)置計(jì)時(shí)器,隱藏表單域,隱藏CAPTCHA等。但是,這些技巧可能會(huì)影響用戶體驗(yàn),并且也不是完全違反的。因此,我們建議開(kāi)發(fā)者應(yīng)該根據(jù)具體的情況選擇適當(dāng)?shù)姆雷o(hù)措施。
結(jié)論
在當(dāng)前越來(lái)越多的 Web 應(yīng)用程序中,防止機(jī)器人攻擊已經(jīng)成為一個(gè)非常重要的問(wèn)題。Javascript 提供了各種防護(hù)策略,可以幫助我們識(shí)別和防止機(jī)器人攻擊。然而,需要注意的是并沒(méi)有完美的解決方案,開(kāi)發(fā)者應(yīng)該根據(jù)自己的需要選擇最適合的方法用于防護(hù)自己的站點(diǎn)。