Http冒険記(下)--Strutsの秘密

5112 ワード

転自:私達は寝返りを打ちます。
Http冒険記によると、Ngnixビルに来ました。04号の長工は私を接待してくれました。そして私をTomcatに回して、有名な0 x 6904スレッドに出会いました。彼は私を連れてStrutsのFilterボスを探して、二階に行ってLoginationを探して、新しい冒険が始まりました。
第三章警報
二階に行ってみたら、ほほほ、いいやつ、ここには何千何万もの通路があります。名称は全部ActioProxyです。どこにLoginnAcitonがありますか?
0 x 6904は言います:“オーストリア、私は先ほどオンラインの程池の中で寝て、ちょうど起きて、馬鹿にしました。私達はLogingActionに会いたくて、特定のアクションProxy通路を通って、あなたなど、Filterボスに聞いてみます。私達は具体的にどの通路に行きますか?”
私はあそこで退屈しています。0 x 6904を待っています。みんなが通路の端から入るのを楽しみにしています。他の端から出てきます。速いものもあれば、遅いものもあります。
賊の頭の悪いやつが通路から出たばかりで、突然ものすごい警報が大声で思い出しました。注意してください。javascript攻撃があります。
一群の衛兵が走ってきて彼を押さえつけました。先頭の指導者がこいつの小包を開けて、中のデータを詳しく調べます。
「Filterボスに報告します。これは小包に戻ります。ユーザーが入力したデータをブラウザに送りますが、このユーザーが入力したデータは含まれています。このコードはどう処理しますか?指示してください。」
「規定によって消毒しましょう。これらの‘’の文字を意味を変えて操作してください。このようにブラウザに送ると表示だけです。実行しません。」
(私たちが寝返りを打つときの注:転じていうのは、<、>、&などの文字が<>&という意味の転換文字になります)
Filterさんがこんなに忙しいのも無理はないですね。こんな細かいことは全部管理します。
この時0 x 6904は息を切らして帰ってきました。「速く、0 xa 84 d通路を歩きます。」
さっきの警報はどういうことですか?なぜ意味を変えて操作しますか?
これらのjavascriptのスクリプトは私たちのシステムではなく、ハッカーが心を込めて作ったものかもしれません。パラメータを通じてこちらに送ります。消毒しないなら、直接にユーザのブラウザに送ります。これらのjavascriptはブラウザで実行する可能性があります。(中にsession idがあります)を盗んで、ハッカーはユーザーを装って悪いことをすることができます。例えば、お金を回してください。
私はひそかに驚きました。「すごいですね」
「そうですね。多くのサイトでユーザーの入力と出力を消毒しないと、乱れが発生する可能性があります。このようなハッカー攻撃はXSSといいます。サイトをまたいでスクリプト攻撃をします」
第四章ブロック
0 xa 84 d通路に沿ってカウンターが並べられています。前のいくつかのカウンターには「ブロック」と書いてあります。みんな座っています。真ん中のカウンターには「Loginningアクション」と書いてあります。それは私達の目的地です。
後ろのいくつかのカウンターにも「ブロック」と書いてありますが、誰もそこにいません。いったい何をするつもりですか?
私は0 x 6904と最初のカウンターに来ました。彼は私達に言いました。「Exceptionブロックですが、今は大丈夫です。後で会いましょう。」
大丈夫です。真面目にここにいて何をしていますか?
二番目のカウンターのスクリーンショットは私達に言いました。
「I 18 nブロックですが、どこから来ましたか?」
「中国北京中関村ソフトウェアパーク」と言っています。
そんなに詳しくなくてもいいです。国と言葉を覚えます。zhuCNを使ってください。後で会いましょう。
第三のカウンターはFileUploadブロックです。彼は一目でパスしました。私のところにはファイルアップロードのものがありません。
四番目のカウンターに行ったら、ある家伙が笑って私に言いました。
私は頼りにしています。またお金が必要です。
しかし、0 x 6904は可笑しいです。「ここにはuser.nameとuser.passwordがあります。持って行きましょう。」
Parameeterブロックは言います。「はい、彼らをValueStockに置いて、LoginnActionが使います。後で会います。店員たち。」
どうしていつも後で会いますか?
次のカウンターはValidationブロックです。
私は古いIEから出発した時、そこのjavascriptはすでに検証しました。これらのデータは絶対大丈夫です。
Validationのスクリーンセーバーは少しも弱音を吐かないという教訓を私に与えました。「若者よ、javascriptは何を検証しますか?このようなブラウザベースの検査は遠回りになりやすいです。先ほどの警報が聞こえませんか?ハッキングはブラウザを使わずに簡単にHTTP POSTを作って、データを私達に送ってくれます。」
急いで禁声します
検査が速くなりました。彼はすぐに出発しました。「私たちも皆さんの安全のために、はい、通過しました。また後で会いましょう。」
(写真を点けて、拡大して見て、多くの細部ですよ)
5つのスクリーンセーバーを経て、私達はついにLoginationの前に来ました。
彼はここにUserオブジェクトがあります。setNameとsetPasswordの方法があります。明らかに私の小包からの価値があります。
LoginnActionの仕事は少しもいい加减にしない:LoginnServiceに電話して、彼に登録方法を実行させて、データベースを調べて、このユーザー名とパスワードが正しいかどうか見てください。最後に私に教えてください。
ログインに成功しました。このリターンコードを覚えてください。次のカウンターで使います。また、これはあなたのsession idです。帰ったら必ず古いIEに渡してください。彼が生きやすいように保管してください。
私は0 x 6904に聞きました。「私の小包の中にsession idがあるようですが、なぜまた一つくれましたか?」
「これも安全のためです。ログインが成功したら、必ず新しいsession idを作って、古いsession IDを廃止してください。XSS攻撃と結び付けて、なぜこのようにしますか?」
XSS攻撃は主にユーザーのsessionを盗むことです。もしあるハッカーがログイン前のページにXSS攻撃を構築していたら、誰かがこの画面に目を通すと、ログインはしていませんが、session idも盗まれました。そして、ハッカーが絶え間なく試してみて、それらが登録されてからアクセスできるページにアクセスします。session IDが対応すれば、それを使います。ユーザーがウェブサイトに登録したら、ハッカーも登録できます。session idは変わりません。
私は言います。「このネットの世界がこんなに怖いとは思わなかったです。幸いここは防衛が厳しいですね。
次のカウンターでは、やはり私たちはそのリターンコード「success」を求めて、struts.xmlという紙からLoginationの配置を見つけました。その中から対応するjspを見つけました。

            /WEB-INF/home.jsp
後ろのカウンターで眼鏡を落としました。この人たちは全部見たばかりの人ではないですか?だから彼らは全部後で会おうと言っています。
ただ順序はさっきと違っています。まずValidation、そしてParameter、FileUpload、I 18 n、Exception、さっき入ってきた時と完全に倒れました。
(写真を点けて、拡大して見て、多くの細部ですよ)
ちょっと分かりました。これらのやつらは全部LoginnAction実行前にブロックして、LoginnActionの後でブロックします。このように:Exception:loginを実行する前にI 18 nをブロックします。loginを実行する前にFileUploadをブロックします。loginを実行する前にParameeterをブロックします。loginを実行する前にValidationをブロックします。結果Validation:loginの後にParameeter:loginをブロックし、FileUpload:loginの後でブロックI 18 n:loginの後でException:loginの後でブロックします。
Validation、Parameeter、FileUpload、I 18 nは私達に対して笑っただけで放して、私達はすでに実行し終わって、彼らは確かに止めることができるものがありません。
またExceptionブロックに来ました。彼は私達に「何か異常がありますか?」
私は考えてみましたが、全過程に異常はありませんでした。
Exceptionブロックは言います。「はい、もう何もしなくてもいいです。この通路を離れてもいいです。」
(私達が寝返りを打つ時の注:実際のStrutsブロックはここより多いです)
やっと出てきました。私は感慨深い0 x 6904に「このアトラクションProxy通路は本当に面倒くさいですね」と言いました。
0 x 6904は言っています。「実はこの通路の設計はとても精巧で、一回歩くとパラメータ処理、フォーム検証、国際化などのことが全部できます。」
私は彼に聞きました。「どのアクションにもこんなに多くのスクリーンがありますか?」
「必ずしもそうではないです。これはカスタマイズできます。アクションごとに違います。」
じゃ私達はもう行きます。この通路は他の人にも使わせますか?
絶対にしません。一人ずつ使ったら、廃棄します。ゴミは回収します。
ちょっとびっくりしましたが、よく考えてみると、正常です。この通路は実は私の情報を保存しています。他の人は確かに使えません。
第5幕
ちょうど0 x 6904と話しています。大きなラッパがまた鳴りました。「0 x 6904、あそこで何をしていますか?お客さんが大行列しています。人手が足りないです。早く帰ってきてください。」
0 x 6904の顔はすぐに緊張しました。通路を指して私に言いました。
Nginnxビルに戻ってきました。Tomcatと比べて、ここは別の世界です。人の声が沸き立っています。04日は相変わらず忙しいです。私が帰ってくるのを見て、彼は「どうですか?Tomcatはどうですか?」
「あそこはあなたのところよりずっと複雑です。」
04日の長工さんが戻った小包を小さな金庫に入れてくれました。「はい、私のところの仕事も終わりました。後で車で古いIEのところに帰ることができます。」
はい、長い間出てきましたが、確かにIEさんに会いたいです。
長い旅がまた始まります。金庫を持って、千山万水を越えて、いろいろな乗り物に乗ります。疲れても面白いです。また今度話しましょう。
歴険通路