0

我有一个页面,用户可以在其中修改自己数据库中的记录。这很好用,但我正在尝试整理所有的安全漏洞。从下面的代码可以看出,此页面使用查询字符串参数获取数据。目前,任何人都可以更改此查询字符串并编辑任何记录。

如何使用“RequireAuthenticatedUser”和 PropertyInfo 表中匹配的 UserID 字段合并检查?

当前代码:

@{
Layout = "~/_SiteLayout.cshtml";

WebSecurity.RequireAuthenticatedUser(); 

var db = Database.Open("StayInFlorida");

var rPropertyId = Request.QueryString["PropertyID"];

var Propertyinfo = "SELECT * FROM PropertyInfo WHERE PropertyID=@0";
var qPropertyinfo = db.QuerySingle(Propertyinfo, rPropertyId);
}
4

1 回答 1

0

大概,您的 PropertyInfo 表还保存了财产所有者的用户 ID?如果是这样,只需将其包含在 WHERE 子句中并传入CurrentUserId值:

var PropertyInfo = "SELECT * FROM PropertyInfo WHERE PropertyId = @0 AND UserId = @1";
var qPropertyinfo = db.QuerySingle(Propertyinfo, rPropertyId, WebSecurity.CurrentUserId);
于 2013-10-09T19:54:56.377 回答