当前位置: 首页 > 知识库问答 >
问题:

Liferay 7.3 LoginPortlet上不需要的CSRF验证

屈俊远
2023-03-14

用户使用门户LoginPortlet进行登录后,登录失败,并在日志中打印警告:

不允许用户0访问URLhttp://localhost:8080/web/guest/loginportlet com_liferay_login_web_portlet_LoginPortlet:用户0未为com提供有效的CSRF令牌。利弗雷。portlet。SecurityPortletContainerRapper

第二次登录后,登录正常。只有在登录页面打开几分钟后,身份验证令牌失效时,才会出现问题。这基本上是好的,但是portal configportlet。添加违约资源检查白名单包含LoginPortlet的排除项。但这份白名单似乎无法避免不必要的检查。还有其他地方可以避免CSRF检查LoginPortlet吗?

共有1个答案

杨慎之
2023-03-14

我无法重现这个问题,我使用了这个服务器进行测试:
Liferay Community Edition Portal 7.3.5 CE GA6以下是我的步骤,请让我知道我应该改变什么来体验这个问题:

  1. 我解压了这个zip文件到我的ubuntu linux电脑:
    liferay-ce-portal-tomcat-7.3.5-ga6-20200930172312275.tar.gz
  2. 启动服务器并完成第一次设置
  3. 我重新启动了服务器,并在Opera浏览器中访问了localhost:8080
  4. 等了7分钟
  5. 我点击了右上角的签到
  6. 又等了5分钟
  7. 我输入了我的凭据结果:
    我可以成功登录,没有关于CSRF的错误几个建议:a.在:
    <--plhd--中搜索CSRF2/>
    并查看是否可以找到解决问题的属性
    此类属性可以是:
    auth.token.impl=com.liferay.portal.security.auth.SessionAuthToken
    auth.token.check.enabled=false
    auth.token.ignore.originsB.也许你可以尝试在portal-ext.properties中设置这样的内容:
    portlet.add.default.resource.check.whitelist.actions=/log/logC.您可以在Liferay Jira中进行搜索,例如,这张票谈到了类似的内容:
    https://issues.liferay.com/browse/LPS-129976
 类似资料:
  • 我有一个Spring Boot 1.5.12应用程序,默认情况下会启用CSRF保护。我在提交POST请求时使用CSRF令牌。 但是,有些URL需要通过GET请求获取,带有cookie信息,但不需要CSRF令牌,即。 我如何强制我的Spring Boot应用程序也需要CSRF令牌来处理这样的请求? PS:我有一些关于GET请求不需要CSRF保护的意见。但是,它也应该受到保护:https://www.

  • 问题内容: 我需要2个文本字段和1个文件上传。当我只需要文本字段时,一切都正常,但是当我需要文件上传时,即使我选择了一个文件,验证错误仍然会提示需要文件。有人知道我在做什么错吗?提前谢谢了。 //视图 //控制器 问题答案: 我找到了一种完全符合我想要的解决方案。 我变了 至

  • 问题内容: 因此,我对PHP文件有了一个基本的.ajax()POST方法。 我需要什么安全措施? 周围有几篇文章提到使用隐藏的MD5输入字段,您可以通过AJAX发送该字段并在PHP文件中进行验证。这足够好吗? 问题答案: CSRF的风险在于,外部站点可能会将数据发送到您的站点,而用户浏览器会自动将身份验证cookie与它一起发送。 您需要某种方式来执行接收操作(您的方法正在向其发送POST数据),

  • 问题内容: 以下是我的代码段。我想使用angular来验证我的下拉菜单。 有效表示: 有效值可以是“选择服务”以外的任何值,这是我的默认值。 像其他ASP.net的下拉列表一样,需要字段验证器DefaultValue =“ 0”,因此在这里,我的下拉列表将与服务绑定,我想选择除“选择服务”之外的所有其他值。 问题答案: 您需要在下拉列表中添加属性,然后需要添加属性,然后可以使用引用错误: HTML

  • 我尝试使用@ControllerAdvise+@ExceptionHandler来捕获ConstraintViolationException,但是它似乎是以前捕获的,抛出的是TransactionSystemException。 验证数据是非常基本的事情,但出于某种原因,在搜索了很多次之后,我还没有找到解决方案。 编辑:显示代码:

  • 当应用程序依赖于无状态身份验证(使用类似HMAC的东西)时,是否有必要使用CSRF保护? 示例: > 我们有一个单页应用程序(否则我们必须在每个链接上添加令牌:。 此内标识将用于访问诸如之类的受限URL。 令牌将始终在HTTP头内传输。 没有Http会话,也没有cookie。