RESTRICT EDIT of PHP files?

时间:2015-06-04 作者:T.Todua

我想限制所有管理员对任何php文件的编辑权限(如Theme+plugin editor 等等……)

我开发了一个插件,名为System Edit Restriction.

目前,我使用此代码进行限制:

define( \'DISALLOW_FILE_EDIT\', true );
define( \'DISALLOW_FILE_MODS\', true );
$restricted_places = array(\'widgets.php\',\'widgets.php\',\'user-new.php\',  \'upgrade-functions.php\',\'upgrade.php\',  \'themes.php\',   \'theme-install.php\',    \'theme-editor.php\',\'setup-config.php\',\'plugins.php\',    \'plugin-install.php\',\'options-head.php\',\'network.php\',  \'ms-users.php\',\'ms-upgrade-network.php\',\'ms-themes.php\',    \'ms-sites.php\',\'ms-options.php\',\'ms-edit.php\',\'ms-delete-site.php\',\'ms-admin.php\',\'moderation.php\',\'menu-header.php\',\'menu.php\',\'edit-comments.php\',
    //any 3rd party plugins\' menu pages, added under "settings"
    \'page=\'
    );
foreach ( $restricted_places as $restriction ) {    if ( stripos($_SERVER[\'REQUEST_URI\'],$restriction) !== false) {exit;}   }
我错过什么了吗?任何管理员都可以进行AJAX调用(或etc),从而绕过me代码吗?

1 个回复
SO网友:Mathew Tinsley

您应该清理请求URI。我可以通过在URL中添加一个额外的斜杠来绕过这个问题。例如:

wp-admin/widgets.php
该请求显示一个空白页(应该是这样)。

wp-admin//widgets.php
该请求绕过了限制。

很难,几乎不可能,以肯定的方式回答这个问题(即“是的,这就像预期的那样有效”)。到目前为止,至少有一种方法可以绕过这些限制,但我不能说是否还有更多。

更好的方法可能是使用WordPress的功能管理。有几个插件提供了管理功能的接口。例如:

https://wordpress.org/plugins/capability-manager-enhanced/

结束

相关推荐

Contact Form Security

在Wordpress中构建我自己的联系人表单。除了典型的电子邮件etc验证和可能的验证码之外,我还需要考虑任何其他安全步骤。我没有向数据库发送任何数据。