ルーターの WiFidog 設定
主な設定 認証サーバーのホスト名 (ドメイン名または IP を使用できます) と 太字の認証サーバーのパス
ルーターは次の 4 つのアドレスを要求します:
http ://認証サーバー/パス/ログイン
http://認証サーバー/パス/auth
http://認証サーバー/パス/ping
http://認証サーバー/パス/ポータル
http://認証サーバー/ path/gw_message.php
そのため、リクエストごとにindex.phpの次のフォルダーを作成する必要があります
予備知識
クライアントが初めてWi-Fiに接続するとき、ブラウザリクエストはログインとパラメータの伝達にリダイレクトされます
login/?gw_address=router ip&gw_port=router wifidog port&gw_id=user id&url=リダイレクトされる前にユーザーが参照したアドレス
(2013 バージョンの wifidog にはさらに多くの mac パラメータがあります)
login/index.php に必要なものこれは、検証に合格した後にゲートウェイにリダイレクトすることを意味します:
http://gateway address:gateway port/wifidog/auth?token=
その後、wifidog はユーザーのステータスを定期的に報告するスレッドを開始します:
/auth/index.php は、ユーザーがインターネットサーフィンを続けることを許可するかどうかを返す必要があります。 応答形式は次のとおりです: Auth: status code ( 0: 拒否、1: 検証済み)/auth? stage=&ip=&mac=&token=&incoming=&outcoming=
検証が成功した後、ルーターは /portal/?gw_id=%s
をリクエストします
/portal/index.php で、最初のリクエストの url パラメーターへのリダイレクトを記述するか、カスタム URL へのリダイレクト/ping/index.php の機能は、認証サーバーがクラッシュしていないことをルーターに伝えることです。/gw_message/index.php の機能は、エラーが発生したときにユーザーにエラー メッセージを表示することです。 1. 1 つ目はリダイレクトです。初めてログインするとき、ユーザーがアクセスした URL は次のアドレスにリダイレクトされます:
/login/index.php
<?php//获取url传递过来的参数parse_str($_SERVER['QUERY_STRING'], $parseUrl);//gw_address、gw_port、gw_id是必需参数,缺少不能认证成功.if( !array_key_exists('gw_address', $parseUrl) || !array_key_exists('gw_port', $parseUrl) || !array_key_exists('gw_id', $parseUrl)){ exit;}//如果提交了账号密码if(isset($_POST['name']) && isset($_POST['password'])){ $username = $_POST['name']; $password = $_POST['password']; $db = new mysqli('localhost', 'root', '', 'test'); if(mysqli_connect_errno()){ echo mysqli_connect_error(); die; } $db->query("set names 'utf8'"); $result = $db->query("SELECT * FROM user WHERE username='{$username}' AND password='{$password}'"); if($result && $result->num_rows != 0){ //数据库验证成功 $token = ''; $pattern="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ"; for($i=0;$i<32;$i++) $token .= $pattern[ rand(0,35) ]; //把token放到数据库,用于后续验证(auth/index.php) $time = time(); $sql = "UPDATE user SET token='{$token}',logintime='{$time}'"; $db->query($sql); $db->close(); //登陆成功,跳转到路由网管指定的页面. $url = "http://{$parseUrl['gw_address']}:{$parseUrl['gw_port']}/wifidog/auth?token={$token}"; header("Location: ".$url); }else{ //认证失败 //直接重定向本页 请求变成get $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; header("Location: ".$url); }}else{ //get请求 //一个简单的表单页面 $html = <<< EOD <html> <head> <title>portal login</title> </head> <body> <form action="#" method="post"> username:<input type="text" name="username" /> password:<input type="password" name="password" /> <input type="submit" value="submit" /> </form> </body> </html>EOD; echo $html;}2.プロトコル:
/auth/?stage=% s&ip=%s&mac=%s&token=%s&incoming=%s&outcoming=%s
パラメータの説明:stage: 認証段階、ログインとカウンターの 2 種類があります
token: によって発行されたトークンログイン ページ
送信: アップロード トラフィック
/auth/index.php
<?php//获取url传递过来的参数parse_str($_SERVER['QUERY_STRING'], $parseUrl);//需要多少参数用户可自己顶if( !array_key_exists('token', $parseUrl) ){ //拒绝 echo "Auth:0"; exit;}$db = new mysqli('localhost', 'root', '', 'test');$db->query("set names 'utf8'");$token = $parseUrl['token'];$sql = "SELECT * FROM user WHERE token='{$token}'";$result = $db->query($sql);if($result && $result->num_rows != 0){ //token匹配,验证通过 echo "Auth:1";}else{ echo "Auth:0";}
3.Ping プロトコル
/ping/?gw_id=%s&sys_uptime=%lu&sys_memfree=%u&sys_load=%.2f&wifidog_uptime=%lu
wifidog は認証サーバーに情報を送信します。wifidog の現在の状況を報告するために、この情報は上記のリンクに示されているように、HTTP プロトコルを通じて送信されます。パラメーターはおそらく文字通りのものであり、私はそうではありません。認証サーバーとして、auth_server は「Pong」で応答する必要があります。 主な機能は、認証サーバーがまだ生きていてクラッシュしていないことを確認することです。もう 1 つの機能は、認証サーバーがルーティング負荷などの情報を収集できることです。ルーターは定期的にこのスクリプトにアクセスし、スクリプトは Pong に応答する必要があります。応答しないと、認証サーバーが無効であるとみなされ、エラーが発生します。
/ping/index.php
<?phpecho "Pong";?>4. 認証成功後にジャンプ
portal/?gw_id=%s
認証が成功すると、wifidog はユーザーをこのページにリダイレクトします。
/portal/index.php
<?php//认证前用户访问任意url,然后被重定向登录页面,session记录的是这个“任意url”.$url = $_SESSION["url"];//如果login参数url保存到session中//跳转到登陆前页面.header("Location: ".$url);
5. 検証が失敗した場合は、失敗の理由に基づいて次のページにリダイレクトされます
gw_message.php?message=denied
gw_message.php?message=activate
gw_message.php ?message=failed_validation
/gw_message.php
うわー

aphpDependencyInjectionContaineriSATOULTAINATINAGECLASSDEPTINCIES、強化測定性、テスト可能性、および維持可能性。

SELECT DEPENTENCINGINOFCENT(DI)大規模なアプリケーションの場合、ServicElocatorは小さなプロジェクトまたはプロトタイプに適しています。 1)DIは、コンストラクターインジェクションを通じてコードのテスト可能性とモジュール性を改善します。 2)ServiceLocatorは、センター登録を通じてサービスを取得します。これは便利ですが、コードカップリングの増加につながる可能性があります。

phpapplicationscanbeoptimizedforspeedandEfficiencyby:1)enabingopcacheinphp.ini、2)PreparedStatementswithpordatabasequeriesを使用して、3)LoopswithArray_filterandarray_mapfordataprocessing、4)の構成ngincasaSearverseproxy、5)

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

tomakephpapplicationsfaster、followthesesteps:1)useopcodecachinglikeopcacheTostoredscriptbytecode.2)最小化abasequeriesecachingingindexing.3)leveragephp7機能forbettercodeefficiency.4)

依存性注入(DI)は、明示的に推移的な依存関係によりPHPコードのテスト可能性を大幅に改善します。 1)DI分離クラスと特定の実装により、テストとメンテナンスが柔軟になります。 2)3つのタイプのうち、コンストラクターは、状態を一貫性に保つために明示的な式依存性を注入します。 3)DIコンテナを使用して複雑な依存関係を管理し、コードの品質と開発効率を向上させます。

DatabaseQueryoptimizationInpholvesseveralstrategESTOEnhancePerformance.1)selectonlynlynlyndorycolumnStoredatedataTransfer.2)useindexingtospeedupdataretrieval.3)revenmecrycachingtostoreres sultsoffrequent queries.4)


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール
