基於PHP給大家講解防刷票的一些技巧

2022-03-24 17:23:19 字數 3861 閱讀 8611

刷票行為,一直以來都是個難題,無法從根本上防止。

但是我們可以儘量減少刷票的傷害,比如:通過人為增加的邏輯限制。

基於 php,下面介紹防刷票的一些技巧:

1、使用curl進行資訊偽造

2、驗證碼:採用非常複雜的驗證碼

確切的說驗證碼的出現不是針對於人,而是針對於機器。通過複雜度和識別難易度的控制來阻攔掉一部分刷票機,從而減少刷票的發生。但隨著軟體技術、識別技術的發展越來越多的驗證碼面對著先進的刷票軟體也失去了其防範的作用、但是專業刷票機可以攻破。如果不用驗證碼,投票基本就歇菜了,驗證碼獲取方式,採用非同步載入,即點選輸入框時,才去請求,投票成功後,刪除驗證碼的

session

3、限時投票

比如:從早8點至晚23 點

4、設定投票間隔

使用者投票後,需要隔多長時間才能繼續投。

很多投票站點基本上都有這個限制,但是對於更改 ip的攻擊,就沒辦法了

5、投票結果展示:延遲展示,友好展示

6、扣量邏輯:常見於一些軟體評選之類的投票

這是個殺手鐗,後台跑指令碼實時監控異常增長(刷票)的項,然後實施扣量邏輯

即對於這個項,投 10 票才算一票

7、cookie:常用的手段。比較低階

投票後,在客戶端寫入 cookie,下次投票時判斷 cookie 是否存在

但是,這種方式非常容易攻破,因為 cookie 可刪除

8、加密選項 id:對一些投票選項的id,進行隨機加密

加密演算法,加salt,並且設定有效時間,比如5分鐘內

伺服器端進行解密並且驗證

9、nginx限制鏈結數

可以使用這三個模組來限制,不過這不是乙個好的解決方法

10、iptables限制

/sbin/iptables -a input -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j drop

/sbin/iptables -a input -p tcp --dport 80 --syn -m recent --name webpool --set -j accept

/sbin/iptables -t filter -a input -p tcp --dport 80 --tcp-flags

fin,syn,rst,ack syn -m connlimit --connlimit-above 10 --connlimit-mask

32 -j reject

具體指令碼?1

2345

6789

1011

1213

1415

1617

#!/bin/bash

# date: 2015-09-29

# # author: [email protected]

shopt-s -o nounset

exportpath=/usr/bin/:/bin

iptables_log="/tmp/iptables_conf.log"

/sbin/iptables-a input -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j drop

/sbin/iptables-a input -p tcp --dport 80 --syn -m recent --name webpool --set-j accept

/sbin/iptables-t filter -a input -p tcp --dport 80 --tcp-flags fin,syn,rst,ack syn -m connlimit --connlimit-above 10 --connlimit-mask 32 -j reject

while[true];do

#sleep 1

foripin`netstat-an |grep-i':80 '|grep'estab'|awk''|cut-d : -f 1 |sort|uniq-c |awk'}'`

do

/sbin/iptables-l -n |grep$ip >/dev/null||/sbin/iptables-a input -p tcp --dport 80 -s $ip -j drop

echo"/sbin/iptables -a input -p tcp -s $ip -j drop">> $

done

done

PHP一些常用的正規表示式分享給大家

一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...

一些常用的API介面分享給大家 很讚哦

發現了一些網際網路上的資料介面 一直再用 今天分享給大家 記得點讚 支援html xml json jsv csv soap 1.1 soap 1.2 請求格式預設為html aqi getaqiarea 例如json aqi getaqiarea?format json 或aqi getaqiar...

給大家一些ABAP中非常神奇的應用程式

程式balvbufdel 清除alv快取,在資料字典變動時,若alv輸入不一致,可使用該函式 函式模組ctvb compare tables 對比新舊兩個內錶,獲得變更的條目 類cl gui props consumer 獲取window系統 gui的屬性,比如解析度,螢幕大小 類cl shdb s...