SQL面试宝典一:

1.什么是sql  Injection(sql  注入)?如何防止?

答:是一种恶意将sql代码添加到输入参数中,传递到sql服务器解析并执行的一种攻击手法。

防止:1.对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等;

2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

3.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。

4.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。

5.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台

就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。

 

2.什么是存储过程?

答:存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。

优点:

 

1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。

2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。

3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码

4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。

 

posted @ 2019-03-15 20:38  风葬秋暝  阅读(173)  评论(0编辑  收藏  举报