在类中有一个简单的函数来初始化消息变量,为它设置POST值。是否有任何设置它,因为$ _POST无论如何都可以在班级的任何地方使用..?这会引起任何安全问题吗?
function set_posted_data(){
$this->message = $_POST["message"];
}
答案 0 :(得分:1)
当然,以你展示的方式做得更好,原因有几个:
答案 1 :(得分:1)
除了最高级别的功能之外,我更喜欢注射。 (即$class->function($_POST['val'])
注射是理想的原因
答案 2 :(得分:1)
我会这样做略有不同。遗憾的是,我不知道你的班级是什么样的,所以我必须做出一些猜测。首先,我总是从一般功能开始:
public function setMessage($message) {
$this->message = $message;
}
因此即使未发布消息,您仍然可以使用该类。现在通常我会像这样设置发布值:
myclass.setMessage($_POST["message"]);
所以,我根本不会在课堂上使用超级全球。我通常会用一些检查来包围它,所以只接受有效的消息。这是我遇到问题的地方:我不知道该怎么做,因为我对你的代码一无所知。但检查长度可能很有用,也许不允许HTML代码等。一般检查可以合并到类中,例如,没有HTML:
public function setMessage($message) {
$this->message = strip_tags($message);
}
我会处理所有发布的参数,并且或多或少地一起进行所有特定检查。这样可以更容易地检查代码是否安全。