У меня есть несколько простых сценариев на моем сайте, которые позволяют пользователям выполнять такие задачи, как вычисление различий по дате, выполнение математических вычислений и т. Д. Веб-сайт составляет около 95% чистый html (не сгенерированный php), за исключением некоторый jquery/ajax, который отправляет пользовательский ввод на серверную сторону для выполнения вычислений. Код Ajax выглядит следующим образом:php security и ajax-запросы
$.ajax({
type: "POST",
url: "script/calc.php",
data: { userval:val},
success: function(response){
//display response
}
});
Когда введенный пользователь значение/должен быть числами я добавить (INT) перед переменным постом на PHP файл «calc.php», несмотря на то, с точкой зрения безопасности я не думаю, что это может вызвать проблемы.
Im мышления фильтрующей HTTP_REFERER, поэтому файл PHP только получает запросы от моего сайта (чтобы избежать каких-либо злоупотреблений), но я читал, что рассчитывает только на HTTP_REFERER не является конечным трюка, поскольку он опирается на браузере пользователя и иногда он может быть пустым. С другой стороны, стороны. Я знаю, что ajax по умолчанию не позволяет публиковать сообщения в другом домене, но есть и хак для .
Я не хардкорный парень безопасности, я знаю некоторые основы, так есть ли что-нибудь, что вы, ребята, можете мне предложить? Что в этом случае может пойти не так. Обратите внимание, что я не использую никакой базы данных , есть только php-файл, который выполняет некоторые вычисления и ничего больше (ничего , как доступ к любой директории, загрузке файла или к таким вещам).
Есть ли что-нибудь, что я еще должен серьезно рассмотреть, чтобы предотвратить злоупотребление сервером, xss-атаки или similiar?
Edit: Так в основном calc.php имеет структуру, как это (очень простой)
// ожидает целое $ userval = (INT) $ _POST [ 'userval'];
$ total_sum = ($ userval * 15) * (150 * ($ userval-2));
echo $ total_sum; unset ($ total_sum);
// конец //
Большая безопасность сводится к дезинфекции входных данных пользователя. Большинство бриджи - это недостаток. –
Что ж, если у вас есть проблемы с 'script/calc.php', нам нужно увидеть источник (или, по крайней мере, его часть). – Blender