Oracle 存储的程序单元(过程、函数、包和类型)可以使用WRAP功能进行混淆。
除了关于“通过默默无闻的安全性”的一般论点之外,使用包装功能是否有任何具体问题?
Oracle 存储的程序单元(过程、函数、包和类型)可以使用WRAP功能进行混淆。
除了关于“通过默默无闻的安全性”的一般论点之外,使用包装功能是否有任何具体问题?
有可用于使用 Oracle 10g 和 11g 机制包装的代码的解包器。其中包括在线“解包器”和用 Python 编写的解包器的源代码。
因此,包装几乎不会阻止具有该访问级别的人获取源代码。
可以使用 *_DEPENDENCIES 视图、通过 SQL 跟踪或使用 DBMS_TRACE 获得代码性质的其他指标。
依赖关系视图将显示程序可以直接或间接调用哪些表和其他对象。SQL 跟踪将显示由于对过程的特定调用而执行的 SQL。这可以包括“绑定变量”,例如显示加密调用中使用的盐。DBMS_TRACE 通常不安装,但安装并启用后,它可用于跟踪代码所采用的路径,包括行号和过程/函数调用。
为了保护代码不被分析,首先应该使用包。使用过程和函数,所有被授予执行程序权限的数据库用户都可以使用全部代码。对于包,只有规范(程序名称和参数名称/数据类型)可用,主体中的实际代码仅对程序所有者和具有高数据库权限的人(通常是 DBA)可见。
看起来,PL/SQL 源文本换行对于消除阅读 PL/SQL 代码的技术手段没有用处,而是为了实现以下一个或多个目标。