gpt4 book ai didi

c# - Sharepoint 数据库安全 - SQL 注入(inject)

转载 作者:太空狗 更新时间:2023-10-30 00:57:23 26 4
gpt4 key购买 nike

我已经为 SharePoint 开发了一个自定义 Web 部件,我担心它的安全性。 Web 部件本质上是一个测验框架,首先让用户“注册”;他们只需输入姓名和电子邮件地址。对于成功的测验,结果被记录在一个列表中,那些注册变量直接放入列表中。

我应该担心 SQL 注入(inject)攻击吗?数据在添加到列表之前是否被 SharePoint 转义?或者,SharePoint 是否将命名参数与准备好的语句一起使用?或者,它只是逐字记录吗?

感谢您的任何见解。

更新

也许我应该换一种说法,我正在将代码插入到 SharePoint 列表中,因此它不会“直接”进入数据库。当一个项目被插入到一个列表中并且(我假设)插入到某个数据库表中时,我不确定发生的过程(特别是关于安全性)。这是我正在使用的一些代码:

通过标准的HTML输入获取用户输入

 output.Write("<div>Please enter your e-mail address</div><div><input type=\"text\" value=\"\" size=\"30\" name=\"takerEmail\"></div>");

这里是插入数据的方式

            using (SPSite siteSuccessWrite = new SPSite("http://www.mycompany.com"))
{
using (SPWeb webSuccessWrite = siteSuccessWrite.OpenWeb())
{
SPList insertResults = webSuccessWrite.Lists[resultsList];
SPListItem quizEntry = insertResults.Items.Add();

quizEntry["firstName"] = firstName;
quizEntry["lastName"] = lastName;
quizEntry["email"] = email;
quizEntry["phone"] = phone;
quizEntry["department"] = dept;
quizEntry["score"] = score;

quizEntry.Update();
}
}

最佳答案

使用对象模型时,您不必担心 SQL 注入(inject),因为 Sharepoint 会为您处理(它在内部使用参数化存储过程)。

不过,在向用户/法官显示测验结果时,您确实需要担心 XSS 之类的问题,因为未转义的 HTML 可以轻松调用 SharePoint Web 服务/客户端对象模型并在当前用户的上下文中执行操作.

关于c# - Sharepoint 数据库安全 - SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5332493/

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