WEB开发网
开发学院数据库MSSQL Server 在SQL Server中正确使用参数报表 阅读

在SQL Server中正确使用参数报表

 2010-10-01 09:00:29 来源:WEB开发网   
核心提示: 以上三种方式都可以很有效的避免注入式攻击,数据库管理员需要根据实际应用来选择合适的解决方案,在SQL Server中正确使用参数报表(3),如当有效值比较少的时候,如按年份来统计销售订单时,如此的话,就可以保证用户输入的参数是数据库可以识别的,则可以使用列表的形式,当有效值比较多

以上三种方式都可以很有效的避免注入式攻击。数据库管理员需要根据实际应用来选择合适的解决方案。如当有效值比较少的时候,如按年份来统计销售订单时,则可以使用列表的形式。当有效值比较多,特别是这个有效值会自动增长的时候,则可以使用列表查询的方式。总之一个基本的原则,对于String参数,一定要进行验证其合法性。否则的话,很容易造成注入式攻击。

三、对于日期型的数据给与特殊的照顾。

日期型的数据是数据库中最容易出现问题的一个数据类型。因为不同语言环境下,如英语与汉语环境下,其采用的日期格式是不同的。如果数据库中定义了某个日期格式,而输入的参数如果不符合这个格式的话,则系统就会认为这条记录不存在,从而在报表中查询不到相关的数据。为此如果在报表中要使用日期型数据参数的话,将会是一件比较麻烦的事情。所以,在应用程序设计时,数据库管理员最好提醒前台应用程序的设计者,能够规范化日期的格式。如可以要求他们,对于日期型的数据作为参数时,用户不能够手工输入日期。因为不同的用户输入习惯不同,如有些人会按年月日的格式输入(有些用户会把8月份写成08,而有些直接写成8),有些人则会按月、日、年的格式进行输入。由于格式不统一,那么数据库就很难按照同一个规则进行转换。为此,对于日期型的数据作为参数时,最好在前台应用程序中能够规范化输入的格式。如以一个统计的格式输入。要做到这一点的话,就可以通过一个日期型的控件来完成。即用户不能够手工输入日期型的数据。当遇到某个参数时日期型的数据时,当鼠标定位到这个文本框,则系统就会弹出一个类似日历的界面。用户只有通过选择日期来输入日期型的数据,从而规范化用户的输入。另外也可以通过掩码的方式来规范用户输入的格式。即预先规定年月日的输入掩码。用户在输入的时候必须按照这个格式,否则的话,系统不会接受用户的输入。这两种方式都可以实现对日期数据的规范化。

当用户按照同一个格式输入日期数据后,以后的工作就容易处理了。在将参数传递给数据库的时候,可以在查询语句中加入一个日期型数据的强制转换语句。将输入的日期型数据按照系统表中定义的日期型数据进行转换。即如果前台客户端输入的日期型数据格式是日、月、年(只要输入的内容统一即可,没有具体的要求),然后在查询语句中就可以通过数据类型转换工具对数据类型进行转换。如将日、月、年表示的字符型数据类型表示会年、月、日的日期型数据类型。如此的话,就可以保证用户输入的参数是数据库可以识别的。就可以避免因为日期格式不一致或者数据类型不一致而导致报表不能够抓取记录。

上一页  1 2 3 

Tags:SQL Server 正确

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接