ホームページ バックエンド開発 PHPチュートリアル PHP認証コードのクラックについて。解決

PHP認証コードのクラックについて。解決

Jun 13, 2016 pm 01:36 PM
color curl image val

PHP認証コードのクラックについて。
ウェブサイトでの爆発を防ぐために、確認コードを追加することが最善です。
市場には通常、
英語 + 数字、中国語、JS の数種類の認証コードがあり、
珍しい中国モバイルの画像読み取り認証コードもあります。
これは非常に強力に見えますが、実際にはあまり良くありません。答えは 8 つあります。
数字が存在するかどうかを判断した後、4つの答えを固定できます。騙しに頼れば、うまくいく可能性はかなり高くなります。

最後に、干渉点と干渉線を追加します。次に、フォントなどを変形させます。

PHP は通常、GD ライブラリを使用してイメージと SESSION を生成し、認証を実現します。
検証コード レベルを突破した後、セッション ID を取得するリクエストをシミュレートできます。認証コードを解析し、ログイン認証を登録します。

確認コードが解読された後のプロセスは基本的にスムーズです。次に、アカウントのパスワードやスパムメッセージなどを確認しようとしました...

プロセスを理解すれば、警戒できるため、いくつかの問題が関係しています。
1. 位置が固定され、形状が変化しない一部の文字を識別しやすくする必要があります。
2. セッションを適切に設定する必要があります。 SESSIONは検証後すぐにクリアし、URL値の転送設定を禁止するなど...
3. 適切な時間と頻度の制限を設定します。

以下は Baidu の検証コード BZ6E ですが、送信元を特定できるはずですが、数回送信すると失敗します。
各文字が干渉線と少しひねりを加えて接続されているのは少し難しいですが、タオバオには干渉線がありません。
誰かがそれを壊す方法を話し合って考えてみましょう。 Tiebaには今でも頻繁にコメントを投稿する人がいます。


さて、今回はここまでです。


PHP コード

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$image_name = 'baidu.jpg';
$image = "http://tieba.baidu.com/cgi-bin/genimg?0013286908280168B65F46CEDCD48CF9D46DF47A64587DA42FC48BF1CF8D47BD0D0BC2EE39911C9918D5CF46E79CF94FFA71BC0DC14DAE59197F42F24B4455C205062670A2977101F1A661F7F4716A8BC2C21D586F886CA300E0D42874D6365A1216622D9740163479D1DD416DAE5D70C09EA834F6B9EC307A29CDAF8D0C78FE159402800B113F6039195E5D683695532E4E2FFD8563D732AD19EDFB147B7569B617BDFBE487CE77AE49E75D83BA56B7038971E2081F647A&t=0.7108543934300542";    


$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $image); 
curl_setopt($curl, CURLOPT_REFERER, 'http://tieba.baidu.com/f?kw=baidu'); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($curl); 
curl_close($curl); 
file_put_contents($image_name, $result);


$size = getimagesize($image_name);
$im = imagecreatefromjpeg($image_name);
imagejpeg($im, 'baidu.jpg',100);
$width = $size[0];
$height = $size[1];


for($x = 1; $x < $width; $x ++)
{
    for($y = 1; $y < $height; $y ++)
    {
        $color = imagecolorat($im, $x, $y);
        $_col[$x][] = $color;
        if($color < '16777215') $all_color[$color] = $color;
    }
}

$n = array_sum($all_color) / count($all_color);

foreach ($_col as $key=>$val)
{
    foreach ($val as $k=>$v)
        $col[$key] .= $v < $n ? '1':' ';
}

// 去多余行列
foreach ($_col as $key=>$val)
    if(array_sum($val) < 1) unset($col[$key]);


foreach ($col as $key=>$val)
{
    $val = trim($val);
    if(empty($val)) unset($col[$key]);
}

echo '<pre class="brush:php;toolbar:false">';
print_r($col);



ログイン後にコピー


-----解決策---------------- - ---良い投稿ですが、Zhongji の検証とクラッキングに関する記事を読みましたが、よくわかりません...

------解決策------------------ Baidu の認証コードを解読する方法を議論することは何を意味しますか?昔、Baidu の認証コードが特定の機能に基づいて元に戻される可能性があり、その後修正されたことを覚えています。

よく人が爆発するって言ってましたが、それは人力によるDDoSのせいで、1000人で一斉に攻撃する場合、プログラムとハードウェアが追いつかないと完全に止められないので回避されます。純粋にプログラムの観点から見ると、検証コードはありそうにありません。 Baidu プログラマーを過小評価しないでください。認証コードの識別に関しては、識別の鍵となるのは認識率です。認証コードが何度も入力されなかった場合、その認証コードはどのくらいの期間、IP を直接ブロックします。レートは高くありません、それは単なる浮雲です。

------解決策------------------ 2 値化は適切ではなく、通常、処理中にある程度の精度が失われます。検証コードを比較的簡単に変更する必要がある場合は、

非 OCR メソッドを見つけるためにデータベースを使用する必要があります。データシミュレーションを使って、カバー率が○○%以上になれば、単語が見つかったと考えられると思います。干渉を直接無視します

私は個人的にこの方法を使用し、いくつかのオープンソース プログラムを試しましたが、その効果は悪くなく、その率は 30% ~ 90% 以上です


もちろん、オープンソースのプログラムは、使用されているフォントや変形方法もすべて明らかですが、、、オープンソースでないものは、自分で発見するしかありません、ほほ~~~~~~

------解決策------------------ 画像認識 (OCR) は、多くのアルゴリズムを備えた幅広い技術です
現在の OCR 技術は非常に洗練されています

しかし、それを検証コードの識別に使用すると、あまりにも非倫理的になります

A調和のとれた社会はみんなで創る必要があります


------解決策---------専門家がここにいます

------解決策---------ついでに爆破されました
私は初心者なので、まだ根本的な解決策を見つけていませんが、時間制限と IP&& 時間を使って抵抗するのも良いと思います。

------解決策---------普段は糊付け+文字変形を使っています 細かい陰影のある文字(ノイズが増加します)
は通常爆発しません。 ~

------解決策------------------ 率直に言って、これを行うのは基本的に時間の無駄です...

現在、多くの大手 Web サイトが recaptcha を使用していると思いますが、どう思いますか?

また、現在のもう 1 つの傾向は、検証をまったく使用せず、
http://disqus.com/welcome/ などの統計的手法を通じてゴミを特定することです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PythonでCURLリクエストとPythonリクエストの相互変換を実現する方法 PythonでCURLリクエストとPythonリクエストの相互変換を実現する方法 May 03, 2023 pm 12:49 PM

curl と Pythonrequests は両方とも、HTTP リクエストを送信するための強力なツールです。 curl はターミナルから直接リクエストを送信できるコマンドライン ツールですが、Python のリクエスト ライブラリは、Python コードからリクエストを送信するためのよりプログラム的な方法を提供します。 curl を Pythonrequestscurl コマンドに変換するための基本的な構文は次のとおりです。curl[OPTIONS]URLcurl コマンドを Python リクエストに変換する場合、オプションと URL を Python コードに変換する必要があります。これは、curlPOST コマンドの例です:curl-XPOST https://example.com/api

PHP8.1 リリース: 複数リクエストの同時処理のためのcurlの導入 PHP8.1 リリース: 複数リクエストの同時処理のためのcurlの導入 Jul 08, 2023 pm 09:13 PM

PHP8.1 リリース: 複数リクエストの同時処理のためのcurlの導入 最近、PHPは最新バージョンのPHP8.1を正式にリリースし、重要な機能である複数リクエストの同時処理のためのcurlを導入しました。この新機能により、開発者は複数の HTTP リクエストをより効率的かつ柔軟に処理できるようになり、パフォーマンスとユーザー エクスペリエンスが大幅に向上します。以前のバージョンでは、複数のリクエストを処理するには、多くの場合、複数の CURL リソースを作成し、ループを使用してデータをそれぞれ送受信する必要がありました。この方法でも目的は達成できますが、

最初から最後まで: PHP 拡張機能 cURL を使用して HTTP リクエストを行う方法 最初から最後まで: PHP 拡張機能 cURL を使用して HTTP リクエストを行う方法 Jul 29, 2023 pm 05:07 PM

最初から最後まで: HTTP リクエストに php 拡張機能 cURL を使用する方法 はじめに: Web 開発では、多くの場合、サードパーティ API または他のリモート サーバーと通信する必要があります。 cURL を使用して HTTP リクエストを行うのは、一般的で強力な方法です。この記事では、PHP を使用して cURL を拡張して HTTP リクエストを実行する方法を紹介し、いくつかの実用的なコード例を示します。 1. 準備 まず、php に cURL 拡張機能がインストールされていることを確認します。コマンドラインで php-m|grepcurl を実行して確認できます。

Linux での CURL バージョンの更新に関するチュートリアル! Linux での CURL バージョンの更新に関するチュートリアル! Mar 07, 2024 am 08:30 AM

Linux でカールのバージョンを更新するには、以下の手順に従います。 現在のカールのバージョンを確認します。 まず、現在のシステムにインストールされているカールのバージョンを確認する必要があります。ターミナルを開き、次のコマンドを実行します。curl --version このコマンドは、現在のcurlバージョン情報を表示します。利用可能なcurlのバージョンを確認する:curlを更新する前に、利用可能な最新バージョンを確認する必要があります。 Curl の公式 Web サイト (curl.haxx.se) または関連ソフトウェア ソースにアクセスして、curl の最新バージョンを見つけることができます。 Curl ソース コードをダウンロードする:curl またはブラウザを使用して、選択した CURL バージョンのソース コード ファイル (通常は .tar.gz または .tar.bz2) をダウンロードします。

PHP Curl で Web ページの 301 リダイレクトを処理するにはどうすればよいですか? PHP Curl で Web ページの 301 リダイレクトを処理するにはどうすればよいですか? Mar 08, 2024 am 11:36 AM

PHPCurl で Web ページの 301 リダイレクトを処理するにはどうすればよいですか? PHPCurl を使用してネットワーク リクエストを送信すると、Web ページから返される 301 ステータス コードが頻繁に発生します。これは、ページが永続的にリダイレクトされたことを示します。この状況を正しく処理するには、いくつかの特定のオプションと処理ロジックを Curl リクエストに追加する必要があります。以下では、PHPCurl で Web ページの 301 リダイレクトを処理する方法を詳しく紹介し、具体的なコード例を示します。 301 リダイレクトの処理原則 301 リダイレクトとは、サーバーが 30 を返すことを意味します。

Linuxカールとは何ですか Linuxカールとは何ですか Apr 20, 2023 pm 05:05 PM

Linux では、curl はサーバーとの間でデータを転送するための非常に実用的なツールです。これは、コマンド ラインで動作する URL ルールを使用するファイル転送ツールです。ファイルのアップロードとダウンロードをサポートし、包括的な転送ツールです。 Curl は、プロキシ アクセス、ユーザー認証、ftp アップロードとダウンロード、HTTP POST、SSL 接続、Cookie サポート、ブレークポイント再開などの非常に便利な機能を多数提供します。

Bing Image Creatorを無料で使用する方法 Bing Image Creatorを無料で使用する方法 Feb 27, 2024 am 11:04 AM

この記事では、無料の BingImageCreator を使用して高品質の出力を取得する 7 つの方法を紹介します。 BingImageCreator (現在は ImageCreator for Microsoft Designer として知られています) は、優れたオンライン人工知能アート ジェネレーターの 1 つです。ユーザーのプロンプトに基づいて、非常にリアルな視覚効果を生成します。プロンプトがより具体的、明確、創造的であればあるほど、より良い結果が得られます。 BingImageCreator は、高品質の画像の作成において大きな進歩を遂げました。 Dall-E3 トレーニング モードを使用するようになり、より高いレベルの詳細とリアリズムが表示されます。ただし、一貫して HD 結果を生成できるかどうかは、高速な処理などのいくつかの要因によって決まります。

PHP CURLでCookieを設定する方法 PHP CURLでCookieを設定する方法 Sep 26, 2021 am 09:27 AM

PHP CURL で Cookie を設定する方法: 1. PHP サンプル ファイルを作成します; 2. "curl_setopt" 関数を通じて cURL 送信オプションを設定します; 3. CURL に Cookie を渡します。

See all articles