这是CodeIgniter中的安全问题,它允许使用URL运行控制器功能



我不确定这是一个安全问题,还是我错误地理解了一些问题?这就是为什么我问这个问题。

我知道,任何人都可以使用URL运行任何控制器功能。假设我在控制器中具有称为userdelete的控制器函数。

以便任何人都可以使用

运行该功能
http://example.com/index.php/user/delete

是证券问题吗?

我的意思是在纯php中,即使您知道自定义功能名称,也无法通过URL运行任何功能。

,如果任何人都知道控制器名称和函数名称,似乎任何人都可以在CodeIgniter控制器中运行任何函数。这是安全问题还是我错误地理解了一些?

您正在误解。当您将URL传递给CodeIgniter时,您不会直接执行自定义功能。CI将URL取消,将其分成部分,并根据默认处理以及您配置的任何自定义路由来弄清楚如何路由它。您可以将快速而肮脏的设置放在一起,该设置以类似的方式使用而无需使用CI。这种设置并不是CI唯一的,甚至不是PHP本身。

这种行为不是安全问题。用户输入 开发人员响应是安全问题。您如何处理该删除呼叫以及传递到的数据是潜在的安全问题相关的地方。

在您给出 delete方法的示例中,有可能发生恶作剧。您不会显示要发送到delete的参数,但是为了识别要删除的用户而需要一个参数。敌对操作员可以调用delete并尝试随机用户ID值。要成为"安全"某种身份验证/权限系统,必须将删除方法无法进行,除非已知用户已知并具有适当的许可。

同样适用于任何"添加","编辑"和可能与"用户"打交道的方法。

确实,任何涉及创建,更新,读取和删除(crud(的UI均应具有身份验证/权限系统。

这种需求不是Codeigniter唯一的。

这不是任何安全问题。但是您说您使用删除函数,因此请设置任何删除参数值。如果使用任何参数删除任何行值,请使用以下URL格式http://www.example.com/index.php/user/delete/id/1可能是工作。或在详细信息上描述更多,然后我为您提供帮助。

最新更新