【发布时间】:2011-09-05 10:26:13
【问题描述】:
我有用于编辑图像的 HTML 表单。所有数据都存储在 JSON 中。当我更改当前图像时,我想通过 PHP 脚本将更改保存到文本文件中。如果我返回上一个图像,这个配置将再次从这个文件发送到表单。
我的问题是:
如何安全地写入/读取此类数据。在哪里以及如何有效地检查数据以防止某些 JS/PHP 代码注入?
我在下面附上了一些概念代码:
JavaScript(使用 jQuery):
// Writing
$.ajax({
global: false,
type: "POST",
cache: false,
dataType: "json",
data: ({
action: 'write',
config: JavaScriptJSON_Obj
}),
url: 'read-write.php'
});
// Reading
$.ajax({
global: false,
type: "POST",
cache: false,
dataType: "json",
data: ({
action: 'read'
}),
url: 'read-write.php',
success: function(data){
JavaScriptJSON_Obj = data;
}
});
PHP 示例(read-write.php):
switch ($_REQUEST['action']) {
case 'write':
file_put_contents('config.txt', $_REQUEST['config']);
break;
case 'read':
$s = file_get_contents('config.txt');
echo json_encode($s);
break;
}
【问题讨论】:
-
取决于我会说的 JavascriptJSON_Obj 正在做什么。它可以为潜在的远程文件包括打开大门。
-
只需将其保存为文本数据,然后将其加载为文本数据。没有什么不安全的。您应该考虑的唯一一件事 - 访问权限。您应该将此信息存储在无法通过浏览器直接访问的目录中(这就是为什么您有
read-write.php用于阅读config.txt)。您也可以考虑将这些数据存储在 DB 中。
标签: php json file security code-injection