この記事では主に、CC 攻撃を防ぐための PHP コードと、Web ページの頻繁な更新と悪意のある Web ページの急速な更新を防ぐための PHP を紹介します。CC 攻撃は、プロキシ サーバーを使用してターゲット サイトに向けられた正当なリクエストを生成し、複数のユーザーが被害者に継続的にアクセスすることをシミュレートします。興味のある友達は勉強してみてください
Web ページは悪意を持ってすぐに更新されます。CC 攻撃では、攻撃者がプロキシ サーバーを使用してターゲット サイトへの正当なリクエストを生成し、複数のユーザーが被害 Web サイトに継続的にアクセスすることをシミュレートします。大量のデータを必要とするページを操作すると、最終的にターゲット Web サイトのサーバーがリソース不足になり、サーバー リソースが長時間にわたって 100% 使用されることになります。ネットワークが混雑し、通常のアクセスが中断されるまで、未完了の接続が常に存在します。これをCC攻撃と呼びます。攻撃対策ソフトウェアを使用してこれを実現することもできますが、その効果が明らかではない場合があります。
以下に、CC 攻撃をある程度防ぐことができる PHP コードを提供します。
主な機能: 3 秒以内に 5 回以上ページを継続的に更新すると、ローカル マシン http://127.0.0.1 がポイントされます。
CC 攻撃を防ぐ必要があるページにこのコードを置くだけです。
ソースコード
<?php $timestampcc = time(); $cc_nowtime = $timestampcc; if(session_is_registered('cc_lasttime')){ $cc_lasttime = $_SESSION['cc_lasttime']; $cc_times = $_SESSION['cc_times']+1; $_SESSION['cc_times'] = $cc_times; }else{ $cc_lasttime = $cc_nowtime; $cc_times = 1; $_SESSION['cc_times'] = $cc_times; $_SESSION['cc_lasttime'] = $cc_lasttime; } if(($cc_nowtime-$cc_lasttime)<3){//3秒内刷新5次以上可能为cc攻击 if($cc_times>=5){ echo '刷新太快!'; exit; } }else{ $cc_times = 0; $_SESSION['cc_lasttime'] = $cc_nowtime; $_SESSION['cc_times'] = $cc_times; } ?>
以下はPHPにおけるCC攻撃を防ぐ効果的な方法です:
1.session Record
submit.phpは送信ページであり、このページにセッション変数を設定し、隠しフィールドおよびフォームとして、submitdeal.php ページに送信され、サーバー側では、投稿された隠し変数がサーバー側に記録されているセッション変数と比較され、同じであれば書き込まれます。このようにして、ユーザーがページを更新すると、値が等しくない場合、エラーまたはジャンプが表示されます。
利点:ユーザーが確認コードを入力する必要がない
欠点:フォームは簡単にコピーできます
2. 原理は最初のものと同じですが、セッションが異なる点が異なります。データは隠しフィールドとして送信されるのではなく、ユーザーによって入力されます。ほとんどの Web サイトではテキスト検証コードと画像検証コードが使用されており、画像検証コードは非常に安全です。
データを送信した後、まず IP テーブルからクライアント IP を取得します。有効期限が切れていない場合は、エラーが報告されます。をクリックすると、客室の IP が取得され、その IP がデータベースに書き込まれます。
4. Cookie:
顧客が送信した後、処理プログラムはまずクライアントが Cookie を設定しているかどうかを検索し、設定していない場合は再度送信しません。 例:
ユーザーには意味がない 頻繁なジャンプやリクエストはサーバーに多大な負担をかけますが、実際には Cookie がこれを防ぐことができます。
<?php error_reporting(0); //if($_COOKIE["ck"])die("刷新过快!"); if($_COOKIE["ck"])header("Location:http://www.baidu.com");//这里如果用户刷新过快,给予终止php脚本或者直接302跳转 setcookie("ck","1",time()+3);//设定cookie存活时间3s echo "hello!"; ?>
方法1:
<?php session_start(); $k=$_GET['k']; $t=$_GET['t']; $allowTime = 1800;//防刷新时间 $ip = get_client_ip(); $allowT = md5($ip.$k.$t); if(!isset($_SESSION[$allowT])) { $refresh = true; $_SESSION[$allowT] = time(); }elseif(time() - $_SESSION[$allowT]>$allowTime){ $refresh = true; $_SESSION[$allowT] = time(); }else{ $refresh = false; } ?>
方法2:
<? session_start(); if(!emptyempty($_POST[name])){ $data = $_POST[name]; $tag = $_POST[tag]; if($_SESSION[status]==$tag){ echo $data; }else{ echo "不允许刷新!"; } } $v = mt_rand(1,10000); ?> <form method="post" name="magic" action="f5.php"><input type="hidden" name="tag" value="<?=$v?>"><input type=text name="name"><input type="submit" value="submit"> </form> <? echo $v; $_SESSION[status] = $v; ?>
方法3:
上記はさまざまな予防方法ですPHP メソッドにおける CC 攻撃は、Web ページが迅速かつ悪意を持って更新されるのを防ぐのに役立つことを願っています。
関連する推奨事項:
フォームの繰り返し送信を防ぐための ThinkPHP の方法 SQL インジェクションを防ぐための PHP の方法以上がPHP は CC 攻撃コードを防止します。 PHP は Web ページの頻繁な更新を防止します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









