我制作了个人资料页面。我使用$\\u POST方法直接从输入中获取值。用户在此页面中更新其配置文件。我想知道这是安全方法吗?我也在wp\\u list\\u表中使用它。
什么是最好的安全$_POST方法?
2 个回复
最合适的回答,由SO网友:CodeMascot 整理而成
您必须根据数据的类型和应用程序清理或转义数据。如下所示-
$title = sanitize_text_field( $_POST[\'title\'] );
update_post_meta( $post->ID, \'title\', $title );
这是一个很大的话题。你最好看看这个Validating Sanitizing and Escaping User Data.SO网友:Levi Dulstein
除了上面提到的\\u剧作家通过链接WordPress Codex, 还有一个非常有用的本机PHP函数,允许您一次性清理来自$\\u POST super global的所有数据:filter_input_array
. 看见php docs. 示例:
// let\'s say I\'m expecting to get data like this:
$_POST = [
\'myString\' => \'Hello World\',
\'myInteger\' => 42,
\'myArrayOfStrings\' => [
\'hello\',
\'world\',
],
];
// sanitizing $_POST super global:
$data = filter_input_array( INPUT_POST, [
\'myString\' => FILTER_SANITIZE_STRING,
\'myInteger\' => FILTER_VALIDATE_INT,
\'myArrayOfStrings\' => [
\'filter\' => FILTER_SANITIZE_STRING,
\'flags\' => FILTER_REQUIRE_ARRAY,
],
] );
// now $data contains array of sanitized values
结束