チケット詐欺の防止に関するいくつかの関連問題
Jun 13, 2016 pm 12:27 PM
關(guān)于防刷票的一些問題
刷票行為
,一直以來都是個難題,無法從根本上防止。
但是我們可以盡量減少刷票的傷害,比如:通過人為增加的邏輯限制。
基于?PHP
,下面介紹防刷票的一些技巧:
1、使用CURL進行信息偽造
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://localhost/2.php");curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8'));curl_setopt($ch, CURLOPT_REFERER, "http://localhost/ ");curl_setopt($ch, CURLOPT_HEADER, 1);curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0)");$out = curl_exec($ch); curl_close($ch);
2、驗證碼
:采用非常復(fù)雜的驗證碼
確切的說驗證碼的出現(xiàn)不是針對于人,而是針對于機器。通過復(fù)雜度和識別難易度的控制來阻攔掉一部分刷票機,從而減少刷票的發(fā)生。但隨著軟件技術(shù)、識別技術(shù)的發(fā)展越來越多的驗證碼面對著先進的刷票軟件也失去了其防范的作用、但是專業(yè)刷票機可以攻破。如果不用驗證碼,投票基本就歇菜了,驗證碼獲取方式,采用異步加載,即點擊輸入框時,才去請求,投票成功后,刪除驗證碼的 Session
3、限時投票
比如:從早8點至晚23 點
4、設(shè)置投票間隔
用戶投票后,需要隔多長時間才能繼續(xù)投。很多投票站點基本上都有這個限制,但是對于更改 IP的攻擊,就沒辦法了
5、投票結(jié)果展示
:延遲展示,友好展示
頁面上投票,JS 立馬加1,但是刷新頁面,不一定立馬展示最新投票結(jié)果,返回狀態(tài)給頁面(感謝您的投票!或者 投票成功!至于有沒有成功,另說了?。?/p>
6、扣量邏輯
:常見于一些軟件評選之類的投票
- 這是個殺手锏,后臺跑腳本實時監(jiān)控異常增長(刷票)的項,然后實施扣量邏輯
- 即對于這個項,投 10 票才算一票
7、Cookie
:常用的手段。比較低級
- 投票后,在客戶端寫入 Cookie,下次投票時判斷 Cookie 是否存在
- 但是,這種方式非常容易攻破,因為 Cookie 可刪除
8、加密選項 ID
:對一些投票選項的ID,進行隨機加密
- 加密算法,加Salt,并且設(shè)置有效時間,比如5分鐘內(nèi)
- 服務(wù)器端進行解密并且驗證
9、nginx限制鏈接數(shù)
- ngx_http_limit_conn_module
- ngx_http_limit_req_module
- nginx_limit_speed_module
可以使用這三個模塊來限制,不過這不是一個好的解決方法
具體可以參見:關(guān)于nginx的限速模塊
10、iptables限制
/sbin/iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j LOG --log-prefix 'DDOS:' --log-ip-options#60秒10個新連接,超過記錄日志。/sbin/iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j DROP#60秒10個新連接,超過丟棄數(shù)據(jù)包。/sbin/iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --set -j ACCEPT#范圍內(nèi)允許通過。/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#限制與80端口連接的IP最大連接數(shù)為10#參考其它/sbin/iptables -A INPUT -f -m limit –-limit 100/s –-limit-burst 100 -j ACCEPT#每秒鐘最多允許100個新連接/sbin/iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 10 -j ACCEPT #防止ping洪水攻擊,限制每秒的ping包不超過10個/sbin/iptables -A INPUT -p tcp -m tcp –tcp-flags SYN,RST,ACK SYN -m limit --limit 20/s --limit-burst 200 -j ACCEPT#防止各種端口掃描,將SYN及ACK SYN限制為每秒鐘不超過200個,免得把數(shù)務(wù)器帶寬耗盡了 /sbin/iptables -A OUTPUT -p icmp -o eth0 -j ACCEPT/sbin/iptables -A INPUT -p icmp --icmp-type echo-reply -s 0/0 -i eth0 -j ACCEPT/sbin/iptables -A INPUT -p icmp --icmp-type destination-unreachable -s 0/0 -i eth0 -j ACCEPT/sbin/iptables -A INPUT -p icmp --icmp-type time-exceeded -s 0/0 -i eth0 -j ACCEPT/sbin/iptables -A INPUT -p icmp -i eth0 -j DROP#拒絕ping請求或者net.ipv4.icmp_echo_ignore_all = 1
具體腳本
#!/bin/bash# Date: 2015-09-29# # Author: [email protected]shopt -s -o nounsetexport PATH=/usr/bin/:/biniptables_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 REJECTwhile [ true ]; do #sleep 1 for IP in `netstat -an | grep -i ':80 '|grep 'ESTAB' | awk '{print $5}' | cut -d : -f 1 | sort | uniq -c | awk '{if($1 > 30 && $2!="127.0.0.1" ) {print $2}}'` 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" >> ${iptables_log} donedone
?

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

AlpineLinux では、iptables ツールを使用してファイアウォール ルールを構(gòu)成および管理できます。 AlpineLinux でファイアウォールを有効または無効にする基本的な手順は次のとおりです。 ファイアウォールのステータスを確認します。 sudoiptables -L 出力にルールが表示されている場合 (たとえば、いくつかの INPUT、OUTPUT、または FORWARD ルールがある)、ファイアウォールは有効になっています。出力が空の場合、ファイアウォールは現(xiàn)在無効になっています。ファイアウォールを有効にする: sudoiptables-PINPUTACCEPTsudoiptables-POUTPUTACCEPTsudoiptables-PFORWARDAC

「Laravelのtakeとlimitの使い方を詳しく解説」 Laravelではtakeとlimitの2つがよく使われており、データベースクエリで返されるレコード數(shù)を制限するために使用されます。これらの機能は似ていますが、特定の使用シナリオでは微妙な違いがいくつかあります。この記事では、これら 2 つのメソッドの使用法を詳細に分析し、具體的なコード例を示します。 1. Take メソッド Laravel では、take メソッドは返されるレコードの數(shù)を制限するために使用され、通常は orderBy メソッドと組み合わせられます。

nftables とは何ですか? iptables との違いは何ですか?ほぼすべての Linux 管理者は、Linux システム用のファイアウォールである iptables を使用したことがあります。しかし、nftables については馴染みがないかもしれません。nftables は、必要なアップグレードを提供し、iptables を置き換える可能性がある新しいファイアウォールです。 nftable を使用する理由nftables は、現(xiàn)在 iptables を保守している組織である Netfilter によって開発されました。 nftables は、iptables のパフォーマンスとスケーリングの問題を解決するために作成されました。新しい構(gòu)文といくつかのアップグレードに加えて、nftables には iptab と同じ機能があります。

Linuxシステムでは、iptablesはネットワークパケットフィルタリングルールを設(shè)定?管理するツールであり、あらかじめ設(shè)定されたルールに従ってネットワークに出入りするパケットをフィルタリングすることで、ネットワークアクセス制御やパケット転送などを?qū)g現(xiàn)します。 , iptables はデフォルトでインストールされていますが、インストールされていない場合は手動でインストールする必要があります。この記事では、Debian に iptables をインストールし、関連ルールを設(shè)定する方法を紹介します。 iptables1 をインストールし、ターミナルを開き、root ユーザーとしてログインします。 2. 次のコマンドを?qū)g行して iptables をインストールします: ```shellsudoapt-getupdatesudoapt-ge

準備 vuecreateexample を使用してプロジェクトを作成します パラメーターは大まかに以下のとおりです ネイティブ入力を使用します ネイティブ入力は主に値と変更です 変更する場合はデータを同期する必要がありますApp.tsx は次のとおりです: import{ref}from'vue';exportdefault{setup(){//username はデータです constusername=ref('Zhang San');//入力ボックスが変更されると、データを同期します constonInput =;return( )=>({

laravel入力の隠しフィールドを?qū)g裝する方法: 1. Bladeテンプレートファイルを見つけて開きます; 2. Bladeテンプレートのmethod_fieldメソッドを使用して隠しフィールドを作成します。作成構(gòu)文は「{{ method_field('DELETE') }}」です。 」。

カーソルなしで入力ボックスをクリックする場合の解決策: 1. 入力ボックスのフォーカスを確認する; 2. ブラウザのキャッシュをクリアする; 3. ブラウザを更新する; 4. JavaScript を使用する; 5. ハードウェア デバイスを確認する; 6. 入力を確認するボックスのプロパティ; 7. JavaScript コードをデバッグする; 8. ページの他の要素を確認する; 9. ブラウザーの互換性を考慮する。

Laravelでは、クエリ結(jié)果の數(shù)を制限するために、takeメソッドやlimitメソッドなど、いくつかのメソッドをよく使用します。どちらもクエリ結(jié)果の數(shù)を制限するために使用できますが、微妙な違いがいくつかあります。この記事では、Laravelにおけるtakeとlimitの違いを詳しく掘り下げ、具體的なコード例で説明します。まずはtakeメソッドを見てみましょう。 take メソッドは Eloquent の一部であり、通常は次の目的で使用されます。
