首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CheckMarx XSRF攻击问题

CheckMarx XSRF攻击问题
EN

Stack Overflow用户
提问于 2016-11-30 09:49:38
回答 2查看 6.8K关注 0票数 0

我有一个REST控制器,它有一个方法deleteStudent,它接受两个参数studentId ( Long )和section ( String )。

代码语言:javascript
复制
@RequestMapping(value="/rest/deleteStudent/studentId/{studentId}/section/{section}", method = RequestMethod.DELETE)
public  Student deleteStudent(@PathVariable Long studentId, @PathVariable String section){
    return studentService.deleteStudent(studentId ,section);
}

对于上面的代码,checkmarx抱怨这个参数值流过代码,并最终用于修改数据库内容。应用程序不需要对请求重新进行用户身份验证。这可能会导致跨站点请求伪造(XSRF)。

我试过Htmlutils.htmlescape (从春季网站)在部分,但没有运气。

如何解决车臣问题?

还有一件事,如果字段是长类型的,那么XSRF和SQL注入攻击是如何可能的?

EN

回答 2

Stack Overflow用户

发布于 2016-11-30 10:00:18

您确定它是在讨论studentId参数而不是section参数吗?

如果是真的,我会说是假阳性。

如果它讨论的是section参数,那么如果您的SQL请求是安全的(所以如果您使用ORM或准备好的语句,等等),我一点也不担心。

总的来说,在所有SQL注入的案例中,这都是一个假阳性。

尽管如此,对于CSRF攻击来说,您可能确实是脆弱的。

如果黑客让管理员加载页面,即使您不实现CSRF保护,即使没有访问权限,它也可以删除任何用户帐户。

票数 1
EN

Stack Overflow用户

发布于 2021-06-07 11:33:41

Security(https://docs.spring.io/spring-security/site/docs/3.2.0.CI-SNAPSHOT/reference/html/csrf.html)的评论:

当你使用CSRF保护?我们的建议是使用CSRF保护的任何请求,可由浏览器处理的正常用户。如果您只创建非浏览器客户端使用的服务,则可能要禁用CSRF保护。

如果您的服务仅由非浏览器客户端使用,则可以从预置中排除XSRF查询。

如果没有,下面是Checkmarx如何检查是否验证了跨站点请求伪造令牌(Java/Cx/General/Find_XSRF_Sanitize):

  1. 方法调用getNewXsrfTokensetRpcTokenverifyCSRFTokenisTokenValid
  2. 变量名为:“令牌”、"csrf“、"xsrf”、"nonce“、"captcha”

这些方法调用变量名用于方法去噪。从这些方法的方法主体中,所有这些请求都被认为是消毒的,并从潜在的污染请求列表中删除。

CxQL查询Find_Interactive_Inputs找到的所有这些源代码元素都是请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40885060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档