|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。人人存在5点误区:
1、sql注进对照难防,必要交换select,delete等一打字符
实在关于字符型交换再多都没有交换单引号为两个单引号来的好!关于数字型交换再多都没有效,必定要范例转换。
2、疏忽DropDownList传来的器材
实际上是不合错误的,统统客户真个器材都是不成信托的,select下拉框也是!由于能够本人做一个htm提交到服务器。
3、access比sqlserver不平安
平安不平安关头看怎样用,假如sqlserver仍是像access一样用,一个sa帐户的话,很分明,sqlserver比access不平安,能够间接失掉表名和字段名!access反而倒平安点了,由于只能经由过程逐位猜解失掉。
4、网站没有显现堕落信息就申明网站是平安的
当有纪录的时分显现纪录,没有纪录的时分显现找不就任何纪录,经由过程这两种形态就能够猜解字段名了,以是网页不堕落不克不及申明是平安的
5、疏忽post提交的信息
良多人对url上传送的器材过滤严厉,关于post的器材不睬不理是不合错误的,post的器材加倍简单被注进,由于一样平常字段对照多
在asp.net中激烈倡议经由过程参数来完成sql而不是sql拼接,由于就算你每个都过滤百密难有疏
好比:
SqlConnectionconn=newSqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlCommandcomm=newSqlCommand("updatetb1setvName=@vName,iAge=@iAgewhereID=@id",conn);
SqlParameterparm1=newSqlParameter("@vName",SqlDbType.NVarChar,50);
parm1.Value=((TextBox)e.Item.FindControl("name")).Text;
SqlParameterparm2=newSqlParameter("@iAge",SqlDbType.Int);
parm2.Value=((TextBox)e.Item.FindControl("age")).Text;
SqlParameterparm3=newSqlParameter("@id",SqlDbType.Int);
parm3.Value=this.DataGrid1.DataKeys[e.Item.ItemIndex];
comm.Parameters.Add(parm1);
comm.Parameters.Add(parm2);
comm.Parameters.Add(parm3);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
如许的代码看起来恬逸并且又平安,何乐不为?
</p>因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。 |
|