2013-05-26 2 views
0

Мне просто интересно, как запретить пользователю изменять идентификатор элемента проверки в Chrome перед отправкой результата в базу данных. На моем веб-сайте я создал подобную кнопку, эта кнопка имеет свой собственный идентификатор, такой как ниже (id = '1'). После нажатия этой кнопки я использую ajax для отправки данных в моей базе данных и обновления столбцов с тем же идентификатором, который я передал из ajax. Однако, если пользователь меняет этот идентификатор на элемент проверки в Chrome перед отправкой данных, они могут манипулировать моей базой данных, и вместо того, чтобы любить комментарий с id = 1, они могут понравиться другим комментариям, которые не должны быть приятными. Есть ли способ предотвратить это.Как запретить пользователю изменять идентификатор элемента проверки в Chrome

<input type="button" value="Like" id="1"/> 

$('#button').click(function() { 
    var id = $(this).attr('id'); 

    $('like_ajax.php', {id: id}, function(data) { 
     alert('Success'); 
    }); 

}); 
+1

Вы не можете, поэтому вы никогда не доверяете серверным языкам –

+0

Итак, каковы же способы управления этим способом? – user2310422

ответ

5

Единственное решение - проверить serveride, если текущий идентификатор симпатичен или нет до сохранения в db. Вы всегда должны иметь эту проверку перед сохранением в БД.

0

Предотвращение изменения пользователем ничего в своем браузере не представляется возможным. И, кроме того, это неправильный подход к обеспечению целостности данных. Даже если бы пользователи не могли изменять значения из функции inspect-element, существует несколько способов отправки неверных данных на ваш сервер (например, делая запросы POST с использованием javascript). Итак, вам нужно выполнить проверки на сервере перед сохранением данных.

Когда вы получаете данные, запросите базу данных с помощью id пользователя и отправленного комментария id, чтобы убедиться, что им действительно разрешено это делать.

+0

Можете ли вы дать мне пример проверки на стороне сервера по этому вопросу? – user2310422

+0

Используйте тот же запрос, который используется для установки 'id' кнопки на стороне клиента. Этот запрос может возвращать массив 'id', который пользователь может прокомментировать. Когда данные отправляются на сервер, выполните тот же запрос и получите тот же набор 'id's из базы данных. Убедитесь, что возвращенный массив гарантирует, что представленный «id» действительно является идентификатором, пользователю разрешено прокомментировать. –

0

Проверка на стороне сервера - это правильный способ обработки таких сценариев. Проверка разрешений должна выполняться на стороне сервера для каждого запроса, чтобы доступ только к авторизованному пользователю.

+0

Можете ли вы дать мне пример проверки на стороне сервера по этому вопросу? – user2310422

1

НЕ (а я НЕ повторяю НЕ) доверять чему-либо от клиента.

Проверять и проверять перед вводом данных (бизнес-активов) в базу данных.

Почему бы не проверить и не проверить данные до того, как они попадут на ваш приз и славу?

+0

Но я действительно не знаю никакой проверки для такого материала. Я имею в виду, что еще вы можете проверить с помощью этого кода. – user2310422

Смежные вопросы