ASP.NET を使用して Web サイトを構築しています。そのユーザーに、html5/css/javascript コードをテストする機会を提供したいと考えています。
この目的を達成するために、私は W3School に似た Try It Yourself エディターを実現しました。
このエディターは、POST を介して、現在のページのテキスト領域から、テキスト領域の横にある iframe として視覚化された TryIt.aspx ページに HTML コードを送信します。
TryIt.aspx の背後にあるコードは次のとおりです。
protected void Page_Load(object sender, EventArgs e)
{
RunScriptCode();
}
private void RunScriptCode()
{
string resultValue;
try
{
HttpContext c = HttpContext.Current;
NameValueCollection f = c.Request.Form;
resultValue = f["textareacodeinput"];
Response.Headers.Add("X-XSS-Protection", "0");
if (resultValue != null)
{
Response.Write(resultValue);
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
したがって、resultValue
現在のページから投稿された入力テキスト領域内の HTML コードを取得します。このコードは、TryIt.aspx 経由で HTML として書き込まれますResponse.Write(resultValue)
。
Response.Headers.Add("X-XSS-Protection", "0");
Chrome でクロスサイト スクリプティング フィルターを無効にするヘッダーを追加しました。
さて、この単純な Try It Yourself コード エディターにはデータベースが含まれていないため、XSS に対するセキュリティを実装しないことを考えました。
とにかく、私の考えが正しいのか、それとも私の構築方法が、私の Web サイトやサイトを公開している ASP.NET サーバーを悪用できる XSS 攻撃を受けやすいのでしょうか。
誰かが私にいくつかの提案を手伝ってもらえますか?
大変感謝します。