從用戶輸入動態調用類中的方法是否存在安全問題?例如:動態調用PHP類方法
<?php
class A {
public function foo() {
return true;
}
}
$obj = new A();
$method = $_GET['method'];
$obj->$method();
我知道,用戶將能夠調用內A
任何方法,和我很好的那個。我只是好奇,如果可能有其他可能的安全問題。
如果你有問題的方法,只是不要讓它們公開。除此之外,我想不出任何問題。出於同樣的原因,請小心繼承和繼承的方法。 – acm 2011-03-18 16:35:12
您可能想要審覈允許調用的方法(通過白名單)......不僅僅是爲了測試公共方法(嘗試調用私有方法會導致錯誤),而是爲了防止用戶黑客調用__destruct – 2011-03-18 16:36:01
它也是如果這些方法需要參數,那麼您將獲得樂趣,如果這些方法是用戶提供的,那麼您肯定需要進行某種形式的審查。 – 2011-03-18 16:38:04