具有 ASP 成员资格的 Sql Server 中的安全性和 SQL 注入
Posted
技术标签:
【中文标题】具有 ASP 成员资格的 Sql Server 中的安全性和 SQL 注入【英文标题】:Security and SQL injection in Sql Server with ASP membership 【发布时间】:2014-12-13 15:33:10 【问题描述】:我正在实施具有成员资格的 ASP MVC。该网站托管在 Azure 云中。
有哪些预防措施可以预防
-
Sql 注入暴力攻击
如何根据尝试阻止/锁定用户访问 IP
【问题讨论】:
【参考方案1】:我有第一个问题的答案。 您必须在“Session[data]”中存储一些有用的数据,并且不要从客户端发送。
public ActionResult Index()
try
if (WebSecurity.IsAuthenticated)
String ContractID_string = Session["ContractID"].ToString();
if(ContractID_string!="0")
也不要在没有检查的情况下在 linq 或 sqlQuery 中使用来自客户端的某些字符串输入值。
最好的使用方法
控制
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult _SaveMail(Email_Options Mail)
在视图中
@using (Ajax.BeginForm("_SaveMail", "Contract", Model,
new AjaxOptions
UpdateTargetId = "Email_Options",
OnFailure = "alert('errr')",
OnSuccess = "DeleteErrorMessage('#Form_"+ViewBag.Contract_part+"')"
, htmlAttributes: new id = "Form_"+ViewBag.Contract_part))
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<table id="Email_Options">
<tbody>
<tr>
<th>@Html.LabelFor(m => Model.Email, new style = "font-size:1.05em;" )</th>
<th>
@Html.HiddenFor(m => Model.ContractID)
@Html.EditorFor(m => Model.Email)
@Html.ValidationMessageFor(m => Model.Email)
<button style="font-size:1em; margin:0px; padding:0;" type="submit">Сохранить</button>
</th>
</tr>
<tr>
<th>@Html.LabelFor(m => Model.SendToEmail, new @class = "checkbox" )</th>
<th>@Html.CheckBoxFor(m => Model.SendToEmail)</th>
</tr>
<tr>
<th>@Html.LabelFor(m => Model.SentToHome, new @class = "checkbox" )</th>
<th>@Html.CheckBoxFor(m => Model.SentToHome)</th>
</tr>
<tr>
<th>@Html.LabelFor(m => Model.Print, new @class = "checkbox" )</th>
<th>@Html.CheckBoxFor(m => Model.Print)</th>
</tr>
</tbody>
</table>
【讨论】:
以上是关于具有 ASP 成员资格的 Sql Server 中的安全性和 SQL 注入的主要内容,如果未能解决你的问题,请参考以下文章
部署到 Azure 应用服务时,Asp.net 成员资格提供程序无法连接到本地 SQL Server
如何将数据库从 SQL 服务器迁移到 SQL Azure,其中包含带有数据的 asp.net 成员资格提供程序
使用 SQL Server 2005 通过 LDAP 访问 Active Directory 角色成员资格