検証と、My Customer を介してアップロードできるコスチューム検証のために、My DB から多くの JavaScript をロードするので、指定された JavaScript が有効かどうかを検証したいのですが、自分のページでレンダリングしているときに、MVC 3.0 razer ビュー エンジンを使用しています。
それを修正する方法を見つけるのを手伝ってください
ありがとうございます
検証と、My Customer を介してアップロードできるコスチューム検証のために、My DB から多くの JavaScript をロードするので、指定された JavaScript が有効かどうかを検証したいのですが、自分のページでレンダリングしているときに、MVC 3.0 razer ビュー エンジンを使用しています。
それを修正する方法を見つけるのを手伝ってください
ありがとうございます
あなたの仕事は単にお勧めできません。JavaScript コードをデータベースから直接レンダリングすることは、XSS 攻撃に対してドアを大きく開いたままにしておくことになるため、危険です。
ただし、はい、JSLint を使用して JSCode を正常に検証できます。
Visual Studio 用のプラグインがあり、もちろん、JSLint DLL にパックされた機能を使用して JavaScript をチェックできる方法があるかもしれません。
この 2 つの投稿により、「正しい」方向に進む可能性があります。(ユーザーが入力したJSコードをレンダリングすることは根本的に間違っていると言わざるを得ません)
http://www.codeproject.com/Articles/21438/JSLint-VS-JavaScript-Verifier-for-Visual-Studio
http://blog.outsharked.com/2011/08/sharplinter-command-line-tool-for.html
Visual Studio 2010/2012 を使用していると仮定します。
エイドリアン・サラザールが言ったように:
あなたの仕事は単にお勧めできません。JavaScript コードをデータベースから直接レンダリングすることは、XSS 攻撃に対してドアを大きく開いたままにしておくことになるため、危険です。
そうは言っても、現在のデザインを再考することを強くお勧めします。そうすることを計画している場合は、NuGet から入手できるプラグインである Web Essentials を確認する必要があります。これには JSHint が統合されており、ファイルの保存後または Visual Studio 内でのアプリケーションのビルド時に Javascript をチェックします。
インストーラーとしてもダウンロード可能:
http://visualstudiogallery.msdn.microsoft.com/6ed4c78f-a23e-49ad-b5fd-369af0c2107f
または 2012 の場合:
http://visualstudiogallery.msdn.microsoft.com/07d54d12-7133-4e15-becb-6f451ea3bea6
プリミティブの処理方法 (たとえば) に基づいてサイレント実行時エラーを生成する余地が非常に大きいため、Javascript 構文チェックは注意が必要です。
JSLint などの検証ツールが利用可能であり、独自の検証手法を構築できます。
スクリプトが完全に実行される場合、body タグにクラス ("scriptVerified") を設定する javasript ファイル (jquery を使用) に次の構造を使用します。ただし、イベントが発生したときに、イベント ハンドラーが正しく動作しない可能性があります。
@AdiranSalazar のセキュリティ警告は耳を傾ける価値があります。
$(document).ready(function () {
pageScript.Init();
});
var pageScript =
{
Init: function()
{
pageScript.CleanUp();
pageScript.RegisterHandlers();
pageScript.Start();
pageScript.Final();
},
CleanUp: function()
{
//put page cleanup stuff in here
},
RegisterHandlers: function()
{
//register event handlers in here
},
Start: function()
{
//put page js code in here
},
Final: function () {
$("body").addClass("scriptVerified"); //add class to body to say this has run
}
};