欢迎投稿

今日深度:

MySQL安全攻防实战指南之体系结构篇(1)(8)

七、利用用户定义的函数

几乎每个数据库管理系统都提供了调用定制的本机代码的机制,例如SQL Server有扩展存储过程的概念,Oracle有外部存储过错的概念,等等。虽然这些机制的名称不同,但是基本原理是一致的,那就是用户创建一个可动态装载程序库在windows上为.dll;在linux中为共享对象.so),然后数据库可以通过SQL语句来调用这个库。

由于大多数数据库运行在管理权限上,或者至少能控制他们自己代码和数据,因此这就会招致一个严重的安全问题。如果一个MySQL用户可以创建和执行一个恶意UDF,那么整个数据库服务器的安全性就会岌岌可危。

触发添加和使用UDF的过程的内容,我们前面已经讲过一些了,这里将深入探讨更多的细节,因为一旦MySQL本身被攻陷,那么也会殃及MySQL所在的主机,而有时候利用恶意UDF攻陷MySQL是件非常简单的事情。

MySQL提供了一个机制,通过该机制可以扩展默认函数集,方法是编写定制的包含用户定义的函数或者UDFs的动态库。这个机制可以通过CREATE FUNCTION语句加以访问,而MySQL.func表中的表项则可以手动添加。包含函数的程序库必须能够从MySQL装入动态库时所用的路径加以访问。


www.htsjk.Com true http://www.htsjk.com/shujukuaq/16813.html NewsArticle 七、利用用户定义的函数 几乎每个数据库管理系统都提供了调用定制的本机代码的机制,例如SQL Server有扩展存储过程的概念,Oracle有外部存储过错的概念...
评论暂时关闭