我有HttpHandler页面,我用它做一些包括使用DB的东西。我需要能够阻止人们访问此文件,并确保信息的路径是我的网站,而不是使用Processrequest实现此目的的另一个网页。
public void ProcessRequest (HttpContext context) {
if (context.Request.Url.Authority.ToString() != HttpContext.Current.Request.Url.Authority.ToString())
return;
context.Response.ContentType = "text/plain";
string str = context.Request.Form["recordsArray[]"].ToString();
char[] delimiters = new char[] { ',', ';' };
string[] arr = str.Split(delimiters);
for (int i = 0; i < arr.Length; i++)
{
Functions.Add(new tab(arr[i])); // insert records into table Tabs => int id, string name
}
}
答案 0 :(得分:3)
如果您想阻止人们正常访问某些资源,请使用身份验证来保护此资源:您向授权用户授予用户名/密码,以便您将其与未经授权的用户区分开来。
可以伪造HTTP请求,使其看起来就像是来自您的域,而实际上并非如此。所以唯一的方法是使用一些秘密。
答案 1 :(得分:0)
你也可以为你处理SQL注入。
或者对于更简单的东西,你可以只使用SQL参数(这是Linq to SQL使用的):
(简短指南):http://www.sharpdeveloper.net/content/archive/2007/05/25/creating-sqlparameters-best-practices.aspx 或者在这里 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.aspx
我知道这不是一个特别适合你的解决方案,但我希望有所帮助。