リッチテキストエディタのアンチxss攻撃
通常の開発では、リッチテキストエディタを導入し、ユーザーが情報を入力してデータベースに保存する必要があります.これはプロジェクトにも潜在的な危険を残しています.開発時に備えないと攻撃を受けやすいです.一般的な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
The encoder()returns an object with the following main functions:
The ESAPI has a function for creating express middleware to serve client side scripts of ESAPI.
-NPMのインストール
今はリッチテキストエディタに対して、xss攻撃を防止する方法について、いくつかのアドバイスをします.
ユーザ機器の使用を推奨します
複数のプロジェクトで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
-Usagevar ESAPI = require('node-esapi');
ESAPI.encoder().encodeForHTML('This is a test
');
-Enccoder FunctionsThe encoder()returns an object with the following main functions:
encodeForHTML
encodeForCSS
encodeForJS = encodeForJavaScript = encodeForJavascript
encodeForURL
encodeForHTMLAttribute
encodeForBase64
-MiddlewareThe 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);
});