各リクエストの後に表示される特定の番号のみを保護したい。そのような数は約30あります。これらの数字の代わりに画像を生成する予定でしたが、キャプチャのように画像がゆがんでいない場合、スクリプトはとにかく数字を解読できませんか? また、画像の読み込みとテキストの読み込みはどの程度のパフォーマンス ヒットになるのでしょうか?
15 に答える
悪者があなたのデータを取得しないようにする唯一の方法は、データを誰とも共有しないことです。他の解決策は、基本的に、スクリーン スクレイパーとの軍拡競争に参加することです。いずれかの時点で、軍拡競争はコストがかかりすぎて続行できないことに気付く人もいるでしょう。あなたが共有しているデータに目に見える価値がある場合、おそらくスクリーンスクレイパーは非常に決定的です.
不可能です。
- JavaScript を使用し、復号化後に document.write() 呼び出しを使用してページを暗号化します。ブラウザーのディスプレイからスクレイピングするか、JS エンジンを介してページをフィードして出力を取得します。
- フラッシュを使用します。フラッシュ ファイルを調べて、値を取得できます。それらをフラッシュで暗号化すると、それを実行するだけで、インタープリターのディスプレイからの出力を一連の画像として取得できます。
- あなたは画像を使用し、私はOCRを通してそれらをフィードすることができます.
あなたは軍拡競争にいます。あなたがしなければならないことは、あなたの情報を非常に有用なものにし、あなたのページを非常に使いやすくして、あなたが信頼できる情報源になるようにすることです. また、出力形式を定期的に変更して最新の状態に保つのも便利ですが、かなり根本的な変更を行わない限り、スクリーン スクレイパーはそれを処理できます。急進的な変更は、ユーザーにとってページが常になじみのないものであるため、ユーザーを遠ざけます。
画像ソリューションはあまり役に立たず、画像ははるかに効率的ではありません。通常、数値は HTML エンコーディングでは数バイトの長さしかありません。イメージは数百バイトから始まり、必要なサイズに応じて 1k 以上に拡張されます。また、画像は、ユーザーがブラウザー ウィンドウで選択したフォントでレンダリングされず、補助コンピューティング デバイスを使用するユーザー (視覚障害のあるユーザー) には役に立ちません。
画像とは別に、JavaScript またはフラッシュを使用して数字を表示できます。
CSS を使用して、絶対位置または相対位置のさまざまな組み合わせを使用して個々の数字を配置することもできます。JavaScript を使用してこれらの DIV を作成することもできます。要点は、本当に難しくなるように難読化することです。
もう 1 つの解決策は、セグメントまたは単一のドットの画像を使用し、CSS を使用して数字の画像を再構成することです。これは、ドット マトリックス ディスプレイに少し似ています。これらの絶対位置の DIV をページのソースに散らかし、動的に作成することで再構築をより困難にすることができます。
いずれにせよ、決定的なスクレイパーがデータにアクセスするのを止めることはできません。Web ブラウザーを自動化し、OCR にフィードできるスクリーンショットを撮るのにそれほど時間はかかりません。とにかく、データを手動で取得するために誰かにペニーを支払うことから誰も何もありません.
重要なのは、対戦相手 (ユーザー?) がどの程度決心しているかということです。
これは、ソフトウェア保護ビジネスに少し似ています。カジュアルな「海賊行為」を抑止するのに十分なほど難しいものにすることは、それほど難しいことではなく、一般的にはかなり良いアプローチです.
ただし、提示するデータに多くの価値がある場合、それを保護するために実際にできることは何もありません。
あなたができることはすべてそれを難しくするので、カジュアルな「泥棒」はあなたのサービスを回避するよりも支払いを続けることを好むでしょう.
Javascript はおそらく最も簡単に実装できますが、無効な数字の上にレイヤーを配置したり、間違った数字を背景にブレンドしたり、css を介してそれらを非表示にしたりすることで、特定のブロックを表示できる大きなブロックの数字を作成することができます。半ランダムに生成されたクラス名。
皆さんは、これらのソリューションに反応しすぎていると思います。Javascript、Capcha、さらには訴訟や DMCA プロセスでも、Web スクレイピングやデータ盗難の複雑な適応性に対処できません。悪意のあるボットや Web サイトのスクレイピングを防止するための「理想的な」ソリューションは、リアルタイムの積極的な軽減戦略で機能するものだと思いませんか? コンテンツ保護ネットワークに非常に似ています。ただ言ってください。
例:
IBM - IBM ISS データ・セキュリティー・サービス
DISTIL - www.distil.it
これらの数値を含むイメージを生成し、イメージを表示します。:-)
一般的なマルウェア スクリプト手法を宣伝しているなんて信じられませんが...
実行時にレンダリングされるエンコードされた Javascript として数値をエンコードできます。
ダミーの数字をたくさん投稿して、正しいものを外部 CSS で表示するのはどうですか? スクレイパーが外部 CSS の解析を開始しない限り。
数字を出力しない、つまりプレフィックス
echo $secretNumber;
と//
。
何をしているのか、もう少し詳しく教えていただけますか?確かに、数値のテキストを出力する代わりに画像を作成すると、パフォーマンス ヒットが発生しますが、これを 1 日にどのくらいの頻度で行うでしょうか?
JavaScript を使用することは、テキストを使用することと同じです。リバースエンジニアリングは簡単です。
CSSボックスモデルを使用して、予期しない奇妙な(毎回異なる)ことを行うだけです。実際にブラウザでサポートされているスクリーンスクレーパーを使用するように強制します。
フラッシュを使用してアニメーション番号を使用します。絶対確実ではないかもしれませんが、解読が難しくなります。
Javascript や CSS を使用して数値を難読化することを推奨するすべての人にとって、おそらくそれを回避する方法があります。Firefox には abduction というプラグインがあります。基本的には、ページを画像としてファイルに保存します。おそらく、このプラグインを変更して画像を保存し、画像を分析して、隠そうとしている秘密の番号を見つけることができます。
基本的に、これらの数字をページからスクレイピングする十分な動機があれば、それは行われます。それ以外の場合は、通常の番号を投稿して、ユーザーが番号をコピーして貼り付けることができないことや、このトリックの結果として生じるその他の問題についてそれほど心配する必要がないように、簡単にしてください。
私はこれが可能だとは思わない.あなたは彼らの仕事をより難しくすることができる.彼らはあなたのデータをスクレイピングし、それを公開しないでください。それと同じくらい簡単です...