1

我正在使用 ASP.NET 构建一个网站,我想为其用户提供测试其 html5/css/javascript 代码的机会。

为了达到这个目标,我实现了一个类似于 W3School 的 Try It Yourself 编辑器。

此编辑器通过 POST 将 HTML 代码从当前页面的文本区域提交到 TryIt.aspx 页面,该页面可视为文本区域旁边的 iframe。

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 trhough 上编写为 HTML Response.Write(resultValue)

我添加了标题Response.Headers.Add("X-XSS-Protection", "0");以禁用 Chrome 上的跨站点脚本过滤器。

现在,因为这个简单的 Try It Yourself 代码编辑器中不涉及任何 db,所以我考虑不实施任何针对 XSS 的安全性

无论如何,我想知道我的想法是否正确或我的构建方式是否容易受到一些 XSS 攻击,这些攻击可以利用我的网站或发布我的网站的 ASP.NET 服务器。

谁能帮我一些建议?

非常感谢。

4

1 回答 1

0

我认为我的想法是正确的。

经过一些谷歌搜索后,我下载了OWASP Zed Attack Proxy网站漏洞扫描程序,并用它攻击了我的网站以验证其安全性。

扫描结果没有显示出任何严重的负担。

非常感谢。

于 2013-11-06T16:07:30.520 回答