2016-09-15 3 views
2

DjangoテンプレートやJinja2テンプレートと同じように、ASPテンプレートに自動的にHTMLエスケープ出力を出力する方法はありますか?Classic ASPの自動HTMLエスケープ変数出力の仕組みですか?

例:

<h1><%= title %></h1> 

そしてtitle = "<script>alert()</script>"場合、出力はまだ<h1>&lt;script&gt;alert()&lt;/script&gt;です。

私の目的はどこにでもServer.HtmlEncode()を捨てることを避けることです。

+0

私はなぜあなたは 'Server.HtmlEncode()' *「どこでも」*する必要があると思いますか? ASPをどのように使用しようとしているかの問題に似ています。 – Lankymart

答えて

1

私は残念なことに古典的なASPでこれを行う簡単な方法がわかりません。私が知る限り自動的にhtmlエンコーディングを行うためのタグは組み込まれていません。

Server.HTMLEncode()とServer.URLEncode()を使用することも、h()やu()などのカスタム関数を呼び出して呼び出すこともできます。 。また、javascriptのコンテキストに書き込む際に、これらが適切ではないことに注意してください、そしてそれは、ASPのセキュリティを改造するのは難しい

<script> 
    var x = <%= myVar %>; 
</script> 

のようなもののためのASPには適切なjavascriptの文字列のエンコーダはありません(私はそれはあなたが何であるかだと仮定します後)。

-3
<%=...%> 

は...あなたのHTMLドキュメントにASP値を注入する方法です...

私の理解では、彼らはASPセクション内で使用することができないということです。 <% ...% >何が必要

です:

<% ASP script that gets variables %> 
<html><body> 
<h1><%= ASP_variable %></h1> 

あなたは見出し要素にスクリプトを導入しようとしているように見える理由は私も明確ではありませんよ。

+0

ハングアップ! - あなたはちょうど私が答えた瞬間に質問を変更しました... –

+0

ハングアップ! - 私は答えた瞬間に質問を変えたばかりです... しかし、私はまだあなたがASPからそのようなスクリプトをHTMLに導入できないと確信しています。スクリプトタグは文書内にある必要があります。第二に、私はあなたが突然javascriptを導入することによって要素を中断することはできないと思います。私はdocument.write()があなたを助けるかもしれないと思う - あなたはJavaScript変数にASP変数を注入することができます。 –

+0

申し訳ありませんが、それはまったくナンセンスですが、サーバ側のコードはサーバ上で処理され、何かがブラウザに返される前に何か操作できるようになり、クライアントが最終的に見るものに制約はありません。 – Lankymart

関連する問題