我已经读过 Securing AJAX Requests via GUID 和 Securing an ajax request 。现在让我解释一下我的场景,下面的代码片段可能有助于解释主题。保护通过身份验证的Web表单Ajax的请求在ASP.net
[WebMethod[EnableSession = True]
[ScriptMethod]
public static string CreateTitle(string strTitleName)
{
string strResult = "Custom jSon string";
if(Session["Authorized"] == "True" && !String.IsNullOrEmpty(strTitleName))
{
String strTitle = Server.HtmlEncode(strTitleName);
InsertRecordInDB(strTitle);
strResult = "Custom jSOn string" + EncryptMD5("record id");
}
return strResult;
}
及以下JavaScript调用的参数发送。 btnCreateTitle_click是按钮客户端的点击事件。 txtTitle是接受标题名称的文本框。验证器在页面上创建验证文本框too.CreateTitle是一个网页的方法我称之为使用的ScriptManager
function btnCreateTitle_Click(evnt){
if(Page.ClientValidate()){
if($get("txtTitle")){
PageMethods.CreateTitle($get("txtTitle").value,success,failure,context);
}}}
功能成功表明,标题被创建并显示与加密记录ID作为查询字符串的链接咆哮消息到网址查看创建标题的详细信息。
现在亟待解决的问题,
- 这是足够安全?我错过了什么?
- 我如何使过程更安全,更快?
什么是加密记录ID给你?你吃盐了吗?是否阻止用户猜测他们无法访问的其他ID?加密它不会有太大的帮助。不知道你的身份验证客户如何,这很难说。基于Cookie的身份验证通常足够安全,您可以始终通过ssl运行它。 – 2011-05-19 10:27:42
@Simon是的,我盐的记录标识,同时在运行交易时,我确保该人正在更新他创建/访问的记录。 – Deeptechtons 2011-05-19 10:29:34
安全的哪些方面让您担心 - 您想要解决什么问题? – Xhalent 2011-06-03 23:18:40