PHPの外部サイトからインフォーマーを作成しない方法

読んだすべての人に良い一日を!

すぐに予約したいので、ここでは経験豊富なPHPプログラマーにとって明らかなことについて話しましょう。 しかし最近、新参者はその症状のいずれかで常にこのエラーに遭遇しています。



UPD :紳士、カルマに静かに吐き出すなんて! 投稿でまったく気に入らないものを書くのは本当に難しいですか?



男性が自分の最初(2番目、3番目)のサイトを作成します。 彼は全体を情報ポータルと呼んでいます。 始めるのは便利です。 そして、その人は自分のサイトにサードパーティのサイトからインフォーマーを配置することにしました。 多くのサイトは、これらの目的のために特別なサービスを提供しています。 たとえば、Gismeteoはページに挿入するためのhtmlコードを配布します。多くの銀行は、情報提供者に為替レートのコードも提供します。 しかし、目的のサイトがそのようなサービスを提供していない場合はどうでしょうか?

ここでもう一度予約をする必要があります。 他人のサイトから許可なく情報を投稿することの合法性に関する議論を省略しましょう。 私はそのような行動を歓迎しませんが、人がする必要がある場合...



そのため、私たちの新人は、適切な場所に目的のURLからページを挿入することにしました。 ソースにあるもの:

...

include "http://...";

...







これはひどいです。 これは非常に悪いです。 これがどれほどひどいのか理解していない人のために:



結論として、サードパーティのコンテンツを挿入する方法を説明します。

PHPはcurlなどの優れたツールをサポートしています。これにより、リモートWebサーバーからコンテンツをプルでき、非常に柔軟な設定で、実際にブラウザーをシミュレートできます。 コンテンツは変数に入れられ、処理されます。 正規表現を使用してコンテンツを処理でき、XPathまたは別のパーサーを使用してHTMLを解析できます。 いずれにしても、余分なものはすべて取り除き、有用なコンテンツ(テキスト、数字など)を裸のままにしておく必要があります。 次に、このデータの有効性がチェックされ、ネイティブページレイアウトに単純に挿入されます。

設計の中断、レイアウトの故障、PHPインジェクションはありません。



PS。 脆弱性の私の議論とデモンストレーションが初心者の同僚に望ましい効果をもたらさなかったこと、脆弱性が修正されなかったことは注目に値します。 数日後、この脆弱性を使用してサイトがハッキングされました。 間違いを繰り返さないで、見知らぬ人から学んでください。 頑張って



All Articles