Sql注入问题
本文关键字:问题 注入 Sql | 更新日期: 2023-09-27 17:53:52
我有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
}
}
如果你想阻止人们访问某些资源,通常你通过身份验证来保护该资源:你授予授权用户用户名/密码,允许你区分他们和未经授权的用户。
一个HTTP请求可以被伪造,看起来就像它来自你的域名,而实际上它不是。所以唯一的方法就是使用一些秘密。
你也可以为你处理SQL注入。
Linq to sql: http://weblogs.asp.net/scottgu/archive/2007/09/07/linq-to-sql-part-9-using-a-custom-linq-expression-with-the-lt-asp-linqdatasource-gt-control.aspx
或者更简单一点,您可以使用SQL参数(Linq to SQL使用的就是with):
(一个简短的指南):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
我知道这不是一个特别适合你的解决方案,但我希望这对你有帮助。