【发布时间】:2011-04-27 13:55:02
【问题描述】:
我有 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
}
}
【问题讨论】:
-
如果您担心 sql 注入,请向我们展示实际与 db 对话的代码。不要跳过那部分。
-
看来您目前正在尝试比较 A != A 换句话说我会(这只是一个猜测)假设 HttpContext.Current.Request.Url.Authority.ToString() 是由于“当前”(上下文),实际上等于上下文。
-
@Ramhound:嗯,你说得对,徒劳的尝试。
标签: c# asp.net httphandler