软件安全-3.输入安全 (4)

实际上,应用程序的使用,并不一定要用到管理员账户,使用管理员账户,反而给了攻击者更多的机会。如在SQL Server中,当连接以sa账户进行,且SQL代码中有bug,攻击者可以执行任何管理员账户可以执行的任务,如:

删除系统中的数据库或表;

删除系统中表中的数据;

修改系统中表中数据;

修改存储过程、触发器;

删除日志;

添加新的数据库用户,等等。

很多情况下,程序员会将口令以明文的形式存放于代码中,运行阶段,这些口令置人进程的内存空间。此时,口令如果被攻击者获知,则可执行攻击者希望执行的任何代码。危险性也很大。

解决以上问题的方法主要有:

不到万不得已,不使用管理员账户;

使用最小特权账户,不给以额外的权限;

不允许使用空口令连接数据库,防止管理员疏忽而创建了空口令;

数据库连接字符串存放在配置文件中,***可以加密,而不是代码中以明文显示;

发生错误时,仅给客户端通知信息,不给具体原因,防止攻击者利用这些通知信息进行数据库猜测,等等。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjfww.html