Ответ 1
Как уже упоминалось выше, каждый может отправить запрос на вашу страницу в любое время: поэтому основные проблемы безопасности, которые вам нужны, - это проверка ввода данных и раскрытие информации, доступной только для общественного потребления. Но это относится ко всем сценариям.
Два основных вопроса, на которые вам нужно сосредоточиться (после проверки ввода пользователя):
- У вас может возникнуть проблема - пользователи получают информацию в свои скрипты. В зависимости от браузера (и даже между вкусами одного и того же браузера) существуют разные правила безопасности, которые мешают им вернуть информацию. Общим решением для этого является предоставление информации обратно как "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 и другие заголовки, установленные вашим script, вероятно, будут проигнорированы
- то же самое относится к сеансам