0

私のアプリケーションでは、ユーザーはリンクを送信できます。リンクのテキスト コンテンツを MySQL データベースに挿入して、さらにインデックスを作成して検索できるようにしたいと考えています。

PHP で file_get_contents メソッドを使用してから、データを MySQL に挿入することを検討しています。ここでのセキュリティの落とし穴は何ですか? それとも、このタスク フローは間違っていて、これらのタイプの作業を行うための特別なモジュールがいくつかありますか?

(私はすでに PDO を使用していますが、html に含まれている可能性のある css と javascript を除いて、メイン テキスト コンテンツのみを取得したいということを以前に明らかにしていなかった可能性があります)

4

3 に答える 3

1

BenM が言ったように、Google を再発明するな。しかし、あなたが決心した場合、ここにいくつかのポイントがあります:

  1. file_get_contents() は、URL のコンテンツを取得する適切な方法です。追加のコンテキスト オプションを作成しstream_context_create()て、404 または 500 リンクのインデックス作成を回避し、永続的なリダイレクトに従うことができます。

  2. コードを取得したら、それを解析し、不要な部分を取り出してテキスト コンテンツを取得する必要があります。これは、その特定のトピックに関する非常に有益な質問です

  3. 着信コンテンツの文字セットを考慮する必要があります。ソースの宣言された文字セットを尊重したとしても、非常に簡単に問題に陥ります。これは、そのトピックに関する別の有益なリンクです

  4. 最後に、組み込みのエスケープ関数とプリペアド ステートメントを使用したデータ エスケープに関する推奨事項に従う場合にのみ、データは安全な方法でデータベースに保存されます(およびを参照してください。古い mysql インターフェイスは使用しないでください)。これらのいずれかを見逃した場合、混乱の責任はあなたにあります。PDOMysqli

これがお役に立てば幸いです。

于 2013-03-10T14:12:08.220 に答える
0

最初にテキストをファイルに保存してから再度取得する必要がないため、 file_get_contentsメソッドを使用する必要はありません。

データベースへの直接挿入が最適です。(MySql).
この点では、 PDOが最も安全です。. .

データベースに保存する前にまずテキストを分割して、インデックス作成を改善します

于 2013-03-10T14:05:18.107 に答える
0

主に、MySQL インジェクション ハッキングに注意する必要があります。これらを回避するには、PHP の PDO 拡張機能と準備済みステートメントを使用します。PHP のドキュメントをご覧ください: http://php.net/manual/en/pdo.prepared-statements.php

于 2013-03-10T13:58:55.947 に答える