使用 .net core mvc get 请求处理数据库操作
Handling database operations with .net core mvc get request
我有一个如下图所示的控制器。该控制器在发送获取请求时将相关记录隐藏在数据库中。我用Entity framework核心写的这个项目里这样的操作需要用httppost吗?这个控制器的问题是管理员在任何页面上执行 javascript 代码获取(https://localhost:5001/admin/deletepost?delete=url
)。一旦这个 get 查询运行,相关记录就会被隐藏或从数据库中删除。这样安全吗?我怎样才能让它更安全?非常感谢所有回复的人。
虽然这个方法只有管理员可以访问,但是管理员发送这个请求导致记录被删除会不会造成亏本?
出于多种原因,POST 比 GET 更安全。
GET参数是通过URL传递的。这意味着参数存储在服务器日志和浏览器历史记录中。使用GET时,也可以方便的更改提交给服务器的数据,因为它在地址栏中。
比较两者的安全性问题是POST可以屏蔽临时用户,但不能屏蔽恶意用户。伪造 POST 请求非常容易,不应完全信任。
GET最大的安全问题不是终端用户的恶意,而是第三方向终端用户发送link
还有一点就是必须考虑在什么地方使用GET和POST,因为GET应该只用于不改变数据库信息的操作,只请求或读取信息和POST数据将被更改时应使用数据。
一些 Web 扫描器会自动点击每个 link(通常是 GET 请求)而不是按钮或表单(通常是 POSTS 请求)以避免更改数据库,但是对于例如,如果您在 link 之后执行删除操作,您点击 link 的风险可能会更容易使用更自动化的工具。
我有一个如下图所示的控制器。该控制器在发送获取请求时将相关记录隐藏在数据库中。我用Entity framework核心写的这个项目里这样的操作需要用httppost吗?这个控制器的问题是管理员在任何页面上执行 javascript 代码获取(https://localhost:5001/admin/deletepost?delete=url
)。一旦这个 get 查询运行,相关记录就会被隐藏或从数据库中删除。这样安全吗?我怎样才能让它更安全?非常感谢所有回复的人。
虽然这个方法只有管理员可以访问,但是管理员发送这个请求导致记录被删除会不会造成亏本?
出于多种原因,POST 比 GET 更安全。
GET参数是通过URL传递的。这意味着参数存储在服务器日志和浏览器历史记录中。使用GET时,也可以方便的更改提交给服务器的数据,因为它在地址栏中。
比较两者的安全性问题是POST可以屏蔽临时用户,但不能屏蔽恶意用户。伪造 POST 请求非常容易,不应完全信任。
GET最大的安全问题不是终端用户的恶意,而是第三方向终端用户发送link
还有一点就是必须考虑在什么地方使用GET和POST,因为GET应该只用于不改变数据库信息的操作,只请求或读取信息和POST数据将被更改时应使用数据。
一些 Web 扫描器会自动点击每个 link(通常是 GET 请求)而不是按钮或表单(通常是 POSTS 请求)以避免更改数据库,但是对于例如,如果您在 link 之后执行删除操作,您点击 link 的风险可能会更容易使用更自动化的工具。