誰かを非難する前に、何かを確認する必要があります...まあ、言いたくありません。
問題:
ユーザーが画像をアップロードして、サイトのテキストに埋め込むことができます。以前は、ユーザーが画像にホットリンクすることも許可していましたが、サーバーの負荷のため、残念ながらこれを停止する必要がありました。
現在の「解決策」:
プログラマーが「接続が多すぎる」問題を解決するために使用した方法は、画像リクエストを受信して処理するファイル (image_request.php) の名前を image_request2.php に変更し、元の内容を次のように置き換えることでした。
<?php
header("HTTP/1.1 500 Internal Server Error") ;
?>
明らかに、これにより元の image_request.php を指している src 属性を持つすべての画像が破損し、この場合送信するコードも間違っています。
提案された解決策:
よりエレガントなソリューションは次のようになると思います。
.htaccess で
- リクエストが image_request.php に対するものである場合
- リファラーをチェック
- リファラーが当社のサイトでない場合は、適切なヘッダーを送信します
- リファラーが当サイトの場合、image_request.php に進み、画像リクエストを処理します。
私が知りたいのは:
image_request.php への各リクエストに対して単純に 500 を返す場合と比較して:
上記で概説した代替ソリューションを使用した場合、どれだけの負荷がかかるでしょうか?
これを行うより良い方法はありますか?
私たちの主な関心事は、サイトが稼働し続けることです。内部的にリンクされたすべての画像を破壊することが、これを解決するための最良/唯一の方法であることに同意するつもりはありません。私たちが変更したため、以前にアップロードされたすべてのコンテンツの埋め込みコードを手動で変更する必要があることをユーザーに伝えることを拒否します.