JAva防犯チェーン

1505 ワード

一.防犯チェーンの概念
コンテンツは自分のサーバになく、技術的な手段で他のサイトのコンテンツ(例えば、音楽、画像、ソフトウェアのダウンロードアドレス)を自分のサイトに配置し、この方法で他のサイトの空間とトラフィックを盗む.
二.防犯チェーンの発生
一般的にhttpリクエストでは、完全なページがクライアントに一度にすべて送信されるわけではありません.多くの画像やその他の情報が要求されたページであれば、最初のHttp要求がこのページのテキストに転送され、クライアントのブラウザを通じてこのテキストの解釈が実行され、その中に画像があることがわかり、クライアントのブラウザはHttp要求を送信します.このように1つの完全なページは、複数のHttpリクエストを送信してから完全に表示される可能性があります.このようなメカニズムに基づいて、1つのウェブサイトの中でページの中で言う情報、例えば画像情報がなければ、それは完全にこの画像を他のウェブサイトに接続することができるという問題が発生します.これにより,自分のアクセス量を向上させるとともに,他のサーバへの負荷を増大させる.
三.Httpのrefer
HTTP Refererはヘッダの一部であり、ブラウザがウェブサーバにリクエストを送信すると、通常はRefererを持ってきて、どのページからリンクしたのかをサーバに伝え、サーバ籍は処理にいくつかの情報を得ることができます.
四.JAva盗難防止チェーンの解決
フィルタを設定して、すべてのリクエストをブロックし、外部リクエストが来たときにhttpのreferを抽出してから、当サイトのソースであればアクセスを許可し、そうでなければ拒否することができます.
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
            HttpServletRequest req = (HttpServletRequest) request;
            HttpServletResponse resp = (HttpServletResponse) response;
            String referer = req.getHeader("referer");
            if(null != referer && referer.trim().startsWith("http://localhost:8080/dstn")){
                 System.out.println("      ");
                 chain.doFilter(req, resp);
            }else{
                 System.out.println("  ");
                 req.getRequestDispatcher("/html/error.html").forward(req, resp);
            }
 }