gpt4 book ai didi

javascript - 如何允许我的 Asp.net MVC 3 Web 应用程序使用 MathJax 接受用户输入 $xz$?

转载 作者:行者123 更新时间:2023-11-30 09:05:46 27 4
gpt4 key购买 nike

我正在使用 Asp.Net MVC 3 + Razor + MathJax 开发一个数学网站。MathJax 是一个 JavaScript 库,用于在 Web 浏览器上呈现 TeX 或 LaTeX 代码。而 TeX 或 LaTeX 代码表示数学内容,例如内联数学 $y=mx+c$和显示的数学 \[y=mx+c\] .

现在我的网站可以接受输入,例如$x<y$ .但是它不能接受 $x<y>z$因为框架认为此输入容易受到 XSS 和 XSRF 的攻击。<​​/p>

简而言之,我应该做什么来完成我想要的,但它不会打开安全漏洞。

最佳答案

在 ASP.NET MVC 3 中,您可以使用 [AllowHtml] 修饰需要接受此输入的模型的属性。属性。这样,您就不会被迫禁用整个 Controller 操作的输入验证,而以前是通过使用 [ValidateInput] 装饰它来完成的。属性。所以在你的模型上

public class MathematicsViewModel
{
public int Id { get; set; }
public string Name { get; set; }

[AllowHtml]
public string MathematicFormula { get; set; }
}

然后让你的 Controller Action :

[HttpPost]
public ActionResult(MathematicsViewModel model)
{
// model.MathematicFormula will now accept input like $x<y>z$
...
}

在您的 View 中,您可以有一个名为 MathematicFormula 的文本框,用户可以在其中键入这些字符,您不会得到异常。

另外不要忘记在您的 web.config 中设置以下内容,否则此属性在 .NET 4.0(这是 ASP.NET MVC 3 使用的)中无效:

<httpRuntime requestValidationMode="2.0"/>

关于javascript - 如何允许我的 Asp.net MVC 3 Web 应用程序使用 MathJax 接受用户输入 $x<y>z$?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5177630/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com