Webセキュリティ学習シリーズ(2)


『ホワイトハットWebセキュリティ』ノート6-10章
Webセキュリティ学習シリーズ(1)転載は出典を明記してください.http://blog.csdn.net/cym492224103
  • 第6章H 5安全
  • sandbox
  • Link Typesno referrer
  • Canvas
  • Access-Control-Allow-Origin
  • postMessage
  • Web Storage

  • 第7章注入攻撃
  • 注入攻撃の本質
  • SQL注入
  • 盲注
  • 防御sql注入
  • 第8章ファイルアップロードの脆弱性
  • 考え方
  • まとめ
  • 第9章認証とセッション管理
  • 第10章アクセス制御
  • 権限制御
  • OAuth



  • 第6章H 5安全
    H 5の新しいタグ属性を利用してXSSを開始する
    sandbox
    H 5のiframeラベルのsandboxプロパティ:allow-same-origin:同源アクセスを許可します.allow-top-navigation:最上位ウィンドウへのアクセスを許可します.allow-forms:フォームのコミットを許可allow-script:スクリプトの実行を許可します.このプロパティは、iframeを使用するアプリケーションのセキュリティを大幅に強化します.
    Link Types:no referrer
    <a href=“xxx” rel=“noreferrer”>testa>

    この設計は機密情報とプライバシーを保護するための考慮である.Referを通じて、機密情報が漏れる可能性があります.
    Canvas
    Canvasで認証コードを解読し、画像文字を認識します.
    Access-Control-Allow-Origin
    Access-Control-Allow-Origin:*ドメイン間リクエストの構成.ブラウザは、ターゲットページのresponseにAccess-Control-Allow-Originというヘッダが含まれており、その値に独自のドメイン名がある場合にのみ、ページのデータを取得して次の処理を行うことができます.
    postMessage
    postMessageウィンドウ間転送メッセージ(H 5の新しいAPI)postMessageは、ウィンドウ間転送を実現するために、各window(現在のウィンドウ、ポップアップウィンドウ、iframeなど)オブジェクトが他のウィンドウにテキストメッセージを送信することを可能にする.この機能は同源ポリシーに制限されません.
    Web Storage
    同源戦略によって制約されたWeb StorageはHTML 5に導入された非常に重要な機能であり、フロントエンド開発でよく用いられ、クライアントにデータをローカルに格納することができ、HTML 4のクッキーのようなものであるが、実現可能な機能はcookieよりもずっと強く、cookieサイズは4 KBに制限されており、Web Storageは公式にウェブサイトごとに5 MBを提案している.Web Storageには、次の2つがあります.
  • sessionStorage
  • localStorage

  • 文字通り意味がはっきり見えるように、sessionStorageはデータをsessionに保存し、ブラウザが閉じるとなくなります.localStorageは、データをアクティブに削除しない限り、データが期限切れになることはありません.sessionStorageでもlocalStorageでも、使用可能なAPIは同じです.一般的に使用される方法は次のとおりです.-データを保存します.
    localStorage.setItem( key, value );
    sessionStorage.setItem( key, value );
  • データ読み出し:
  • localStorage.getItem( key );     
    sessionStorage.getItem( key );  
  • 単一データの削除:
  • localStorage.removeItem( key );     
    sessionStorage.removeItem( key );
  • 全てのデータを削除:
  • localStorage.clear( );     
    sessionStorage.clear( );
  • あるインデックスを取得したkey:
  • localStorage.key( index );     
    sessionStorage.key( index );

    どちらも属性lengthがkeyを表す個数、すなわちkey長:
    
var keyLength1 = localStorage.length;
    
var keyLength2 = sessionStorage.length; 

    以上のようにkeyもvalueも文字列でなければならない.言い換えれば、web StorageのAPIでは文字列しか操作できない.
    第7章注入攻撃
    攻撃の本質を注入する
    ユーザが入力したデータをコードとして実行する.ここには2つの重要な条件があり、1つ目はユーザーが入力を制御できることです.2つ目は,本来プログラムが実行するコードであり,ユーザが入力したデータをつなぎ合わせたものである.
    SQL注入
    ≪インスタンス|Instance|emdw≫
    注入登録admin’and 1=1/*アリクラウド発見により攻撃IPが封入された(30分で解封、アリクラウドバックグラウンドにホワイトリストが設置可能)这里写图片描述
    盲注
    注入SQL文が実行されていることを確認します.例えば、and 1=1サーバが正常に戻ると、文が成立することを証明します.
    Timing Attack(脆弱性があるかどうかを判断する)Timing Attackは盲注の高度なテクニックです.暗号学では,タイミング攻撃はサイドチャネル攻撃であり,攻撃者は暗号化アルゴリズムの時間実行を解析することによって暗号を導出しようとする.各論理演算はコンピュータで実行するのに時間がかかり、入力によって実行時間を正確に測定し、実行時間に応じてパスワードを反転します.
    防御sql注入
  • プリコンパイル文使用
  • 安全なストレージプロセスでsql注入に対抗
  • データ型チェック
  • 安全関数の使用
  • 第8章ファイルアップロードの脆弱性
    構想
    多くのアプリケーションには、アップロードインタフェースがあります.例えば、アバターをアップロードすると、アップロードに成功すると、サーバのアップロード後のファイルパスが返されます(悪意のあるスクリプトがアップロードされると、ファイルパスも生成されます).このパスにアクセスすると、スクリプトが実行されます.防御:接尾辞をフィルタします.
    まとめ
                  ,                  。          ,             ,            。
                    ,                 ,                。             、                   ,                    。
    

    第9章認証とセッション管理
    認証(Authentication)認証の目的は、ユーザが誰であるかを認識することである.Authorization(Authorization)ライセンスの目的は、ユーザーが何ができるかを感じることです.
    認証は実際には認証証明書を検証するプロセスです.
    パスワードは、不可逆的な暗号化アルゴリズム、または一方向ハッシュ関数アルゴリズムで、暗号化後にデータベースに格納する必要があります.
    Web開発ではサイトのアクセス量が多く、Sessionのメンテナンスはサイトに大きな負担をもたらす可能性があるため、サーバをSessionにメンテナンスせず、SessionをCookieに暗号化して保存する方法がある.ブラウザがWebサイトにアクセスすると、自動的にCookieが付いてきます.サーバはCookieを解読するだけでユーザーのSessionを得ることができ、ExpireでSessionの失効時間を制御することで、攻撃者にチャンスを与えます.Expireはクライアントによって制御されるためです.
    第10章アクセス制御
    アクセス権制御
    あるトピック(subject)は、あるゲスト(object)に対して何らかの操作(operation)を実施する必要があり、システムのこのような操作に対する制限は権限制御である.垂直権限管理:ロールベースアクセス制御(Role-Based-ACcess-Control)RBAC水平権限管理:データベースアクセス制御
    OAuth
    ユーザー名とパスワードを指定せずに、Webリソースへのアクセスを許可されたサードパーティアプリケーションのセキュリティプロトコル.
    関連する3つの役割:コンシューマサービスプロバイダ(Server)ユーザー(Resource Owner)
    学問には限りがない=』Webセキュリティ学習シリーズ(3)