У меня есть переменная javascript, сохраненная на загрузке страницы, которую я буду использовать позже. Возможно ли изменение этой переменной пользователем. Я пытаюсь понять способ, когда пользователь вводит что-то, делает сообщение ajax и возвращает пару значений.Предотвращение взлома
initialize() запускается при загрузке, поэтому переменная величина получается довольно скоро в загрузке страницы.
function initialize() {
quantity = parseInt(document.getElementById('shipping_quantity').value);
}
Затем я получаю скорость доставки, запрашивая db с условием для ставки.
getRate(){
var rate = '';
$.post('getrate.php', {state: state}, function(data){
rate = parseInt(data);
$("input#shipping_rate").val('$' + rate);
Вот getrate.php
<?
include_once ('includes/config.php');
$state = "OK";
if(isset($_POST['state'])){ $state = $_POST['state'];}
$con = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$st = $con->prepare('SELECT rate FROM freight WHERE administrative_area_level_1 = :state');
$st->bindParam(':state', $state, PDO::PARAM_STR, 2);
$st->execute();
$row = $st->fetch();
$rate = $row['rate'];
echo $rate;
?>
И как общая доставка перерабатывается происходит на последней части функции
var total = (rate * quantity);
$("input#shipping_total").val('$' + total);
});
getRate() Когда я положил все это вместе он работает, но я обеспокоен тем, что количество может быть изменено до того, как сумма будет рассчитана.
Я подумываю о том, чтобы отправить почтовую форму и вернуться к себе после расчета в php тарифах.
Пример, на который я смотрю.
Да, пользователь может изменить абсолютно что-либо на странице до ее отправки. Вы должны проверить все значения на своем сервере. – Pointy
** предупреждение ** ваш код уязвим для SQL-инъекций. –
Вы имеете в виду установку async в false? Это приведет к блокировке функции до тех пор, пока запрос не будет выполнен. –