リッチテキストエディタのアンチxss攻撃

2742 ワード

通常の開発では、リッチテキストエディタを導入し、ユーザーが情報を入力してデータベースに保存する必要があります.これはプロジェクトにも潜在的な危険を残しています.開発時に備えないと攻撃を受けやすいです.一般的なwebセキュリティ問題については、webセキュリティ(入門編)を参照してください.
今はリッチテキストエディタに対して、xss攻撃を防止する方法について、いくつかのアドバイスをします.
  • ユーティリティ
  • の使用を推奨します.
  • ESAPI
  • を使用する.
    ユーザ機器の使用を推奨します
    複数のプロジェクトでUEditorを使用していますが、使い勝手がよく、メンテナンスを更新しています.最も重要なのは、その潜在的なxssホールを修復することです.これは効果的にxss攻撃を防止します.
    ESAPIを使う
    異なる開発言語に対して、ESAPIは複数の異なるバージョンが対応している.例えばJava、PHP、NET、Python、Clasic ASP、Cold Fsion、Node
    nodeを例にとる
    node-esappi is a minimal port of the ESAPI 4 JS(Enterpris Security API for JavaScript)encoder.
    -Installation
    $ npm install node-esapi
    
    -Usage
    var ESAPI = require('node-esapi');
    ESAPI.encoder().encodeForHTML('

    This is a test

    ');
    -Enccoder Functions
    The encoder()returns an object with the following main functions:
    encodeForHTML
    encodeForCSS
    encodeForJS = encodeForJavaScript = encodeForJavascript
    encodeForURL
    encodeForHTMLAttribute
    encodeForBase64
    
    -Middleware
    The ESAPI has a function for creating express middleware to serve client side scripts of ESAPI.
    app.use(ESAPI.middleware());
    
    // Now in your HTML you can do
    
    
    
    
        org.owasp.esapi.ESAPI.initialize();
        //Here you have access to the $ESAPI object and can do
        $ESAPI.encoder().encodeForHTML('<p>This is a test</p>');
    
    
    node防xssもう一つ選択できるプラグイン–xss
    -NPMのインストール
    $ npm install xss
    
    パワー
    $ bower install xss
    
    または
    $ bower install https://github.com/leizongmin/js-xss.git
    
    -使用方法-Node.jsで使用する
    var xss = require('xss');
    var html = xss('alert("xss");');
    console.log(html);
    
    -ブラウザでShimモードを使用する(ファイルtest/test参照):
    
    
    //       filterXSS,    
        var html = filterXSS('<script>alert("xss");</scr' + 'ipt>');
        alert(html);
    
    
    AMDモード(ファイルtest/testumd.を参照):
    
        require.config({
          baseUrl: './',
          paths: {
            xss: 'https://raw.github.com/leizongmin/js-xss/master/dist/xss.js'
          },
          shim: {
            xss: {exports: 'filterXSS'}
          }
        });
        require(['xss'], function (xss) {
          var html = xss('<script>alert("xss");</scr' + 'ipt>');
          alert(html);
        });