如上所述,任何人都可以随时向您的页面发送请求:因此,您需要的主要安全问题是验证用户输入,并且仅显示可供公众使用的信息。但这适用于所有脚本。
您需要关注的两个主要问题(在验证用户输入后)是:
- 您可能遇到的问题是用户将信息接收到其脚本中。根据浏览器的不同(甚至在同一浏览器的风格之间),有不同的安全规则阻止他们获取信息。一种常见的解决方案是将信息作为“JSONP”提供,这是将返回值包装为可由客户端执行的函数调用。下面是一个快速示例(取自 http://www.geekality.net/2010/06/27/php-how-to-easily-provide-json-and-jsonp/)。要进一步锁定它,您可以坚持所有查询都是JSONP,并拒绝任何不发送回调函数的人。
.
<?php
header('content-type: application/json; charset=utf-8');
$data = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
echo $_GET['callback'] . '('.json_encode($data).')';
?>
- 有人通过过于频繁地打电话来滥用您的服务。为此的解决方案是捕获IP地址,并在从IP地址收到太多呼叫时拒绝。不是万无一失,但这是一个开始。
其他需要牢记的因素:
- 脚本设置的 cookie 和其他标头可能会被忽略
- 这同样适用于会话