许多插件需要配置敏感数据,如API密钥、密码等。在实现这些插件时,这些敏感数据使用以下函数存储update_option()
和get_option()
.
编写一个特洛伊木马插件,它提供了一个有用的功能,但也执行了多种get_option()
调用已知敏感选项。即使这是不可能的,手动SQL查询也可以显示这些敏感数据。
有没有办法避免这种固有的不安全模型?
许多插件需要配置敏感数据,如API密钥、密码等。在实现这些插件时,这些敏感数据使用以下函数存储update_option()
和get_option()
.
编写一个特洛伊木马插件,它提供了一个有用的功能,但也执行了多种get_option()
调用已知敏感选项。即使这是不可能的,手动SQL查询也可以显示这些敏感数据。
有没有办法避免这种固有的不安全模型?
事实上,你能做的并不多。
如果入侵者可以直接访问您的网站-他们可以在那里运行get_option()
或者执行直接SQL查询,那么您已经遇到问题了。这里最安全的赌注是在安装新插件时运用您的最佳判断。
换句话说,最好的行动计划是prevention. 不要安装你不认识的插件或由你不信任的开发人员编写的插件。
虽然您可以使用加密来保护数据,但请记住WordPress本身仍然需要访问。因此,如果WP可以读取数据,那么任何可以运行get_option()
也可以读取数据。
是的,不要安装恶意插件或使用加密(请参阅:http://php.net/manual/en/book.mcrypt.php 了解如何做到这一点)。
我正在构建一个WordPress主题框架,随着开发的进展,它可能会有很多选项。我发现了一个相关的问题:When is it appropriate to create a new table in the WordPress database?, 这表明新表的效率会更高,但我想知道更多。有道理的是,如果对1000个条目使用新表更快,那么对数十个或数百个条目也必须更快。此外,wp\\U选项表可能变得非常混乱。这两个选项在查询执行时间、内存使用和其他因素方面有什么区别?