У меня есть страница на моем сайте, где пользователь может обновлять информацию о свойствах в базе данных. В настоящее время детали собственности вытягивают с помощью строки запроса, как это:Защита доступа к базе данных - webmatrix
http://somedomain.com/account/PropertyRooms.cshtml?propertyid=18
Проблема у меня есть, это то, что я только хочу, чтобы пользователи могли обновить свое имущество, а не другие. В настоящее время любой пользователь может вручную изменить запрос и изменить другое свойство.
Я пытаюсь заблокировать это, используя изменение значения «AutectedatedUser» и сопоставив его с столбцом «ownerID» в таблице. Если они не совпадают, я хочу перенаправить на ошибку или страницу входа? Вот моя текущая конфигурация, которая частично работает.
@{
Layout = "~/_SiteLayout.cshtml";
WebSecurity.RequireAuthenticatedUser();
var CurrentUser = WebSecurity.CurrentUserId;
var db = Database.Open("StayInFlorida");
var rPropertyId = Request.QueryString["PropertyID"];
var Propertyinfo = "SELECT * FROM PropertyInfo WHERE [email protected] AND [email protected]";
var qPropertyinfo = db.QuerySingle(Propertyinfo, rPropertyId, CurrentUser);
}
<h2>Property Information</h2>
<form method="post" action="">
<fieldset>
<label>Property ID</label>
<input class="input-mini" id="disabledInput" type="text" value="@qPropertyinfo.PropertyID" placeholder="Disabled input here..." disabled>
</fieldset>
</form>
мне нужно знать, если это лучший способ обезопасить свой сайт, или я должен выполнить отдельный запрос SQL, чтобы проверить в первую очередь? Если я делаю это правильно, какой код мне нужно добавить, если страница терпит неудачу, потому что PropertyID и PropertyID не совпадают?
Спасибо, Гэвин
И вы имеете в виду сделать это в блоке кода или в теле страницы? – Gavin5511
Это зависит от дизайна вашего приложения. Я написал этот фрагмент, исходя из предположения, что вы поместите его в тело страницы, но вы можете поместить его в блок кода и перенаправить на другую страницу, если не найдено подходящего свойства. Это полностью зависит от вас. –
ОК, позвольте мне попробовать оба сценария, и я сообщу, если у меня возникнут проблемы. но я прочитал вашу статью, и это имеет смысл, так что должно быть хорошо. – Gavin5511