Grails 安全问题和搜索引擎优化

Posted

技术标签:

【中文标题】Grails 安全问题和搜索引擎优化【英文标题】:Grails Security Problem and Search Engine optimization 【发布时间】:2010-10-26 22:29:11 【问题描述】:

我正在尝试构建一个控制逻辑,它依赖于当前的 gsp 页面来调用操作,是否有一个标签或会话方法可以用来识别当前的 gsp 页面

我想限制对除 singup 和 login 之外的所有 GSP 的访问,因此如果用户打开任何其他 gsp,他将被重定向到注册页面,并且他还可以导航到登录页面。

如果 current_Page 是 login.gsp 或 singup.gsp,我尝试实现的逻辑是这样的,然后什么也不做

我想在主布局中添加这个逻辑,以便在所有应用程序域中实现它。

我想知道是否有使用 RequestmapController 或 UrlMappings 的替代方法?

任何有 springMVC 经验的人都可以提供帮助,因为 Grails 构建在 SpringMVC 之上,而 SpringMVC 又构建在标准 servlet 框架之上!

注意:我使用的是 Acegi 插件

备注:应用程序如何在实现这种安全机制的情况下对 SEO 友好(即 Google 索引)?

【问题讨论】:

“当前 gsp 页面”是指正在呈现的 gsp 页面的文件名吗? 是的 Chii 这就是我的意思,就像我想限制对除 singup 和登录之外的所有 gsp 的访问,所以如果用户打开任何其他 gsp,他将被重定向到注册页面,他也将能够导航到登录页面如果当前页面是登录或登录,那么我尝试实现的逻辑是这样的这个逻辑在主布局中,所以它可以跨所有应用程序实现,清楚吗? 我想知道是否有使用 RequestmapController 或 UrlMappings 的替代方法? 【参考方案1】:

编辑:抱歉,我误解了你的问题。我以为您正在寻找 Requestmaps 的替代品。这就是为什么我最初建议securing the controllers with annotations.

如果您想使用 Requestmaps,您可以执行以下操作:

    创建一个新的 Requestmap,如下所示: URL 模式 = /login/** 角色 = IS_AUTHENTICATED_ANONYMOUSLY

    要限制对站点其余部分的访问,请创建另一个匹配所有 url 的 requestmap 条目: URL 模式 = /*/** Role = ROLE_USER(你可以使用任何你喜欢的角色)

IS_AUTHENTICATED_ANONYMOUSLY 表示任何人都可以访问匹配的 URL。第一个规则更具体,因此应该覆盖第二个更一般的规则。

您可以查看AcegiSecurity Plugin - Securing URLs了解更多信息。

关于网站的 SEO。 AFAIK 搜索引擎无法访问需要身份验证的网站。这就是为什么像 Experts Exchange 这样的网站使用sly tricks 来获得 Google 索引的原因。

您可以选择授予匿名用户读取权限,同时需要登录才能写入(就像 SO 一样)。这将允许您的网站被搜索引擎机器人索引。

我希望这会有所帮助!

【讨论】:

【参考方案2】:

您应该阅读以下内容:link text

以及使用ACEGI插件的教程:link text

后者是我要走的路。它允许您设置角色并按角色保护“页面”和 URL。它还包括一种创建用户并将其分配给角色的方法。

要安装 ACEGI grails 插件,请执行以下操作:grails install-plugin acegi

【讨论】:

我已经在用acegi了!!!我只是不知道如何制作一个可以正确完成工作的过滤器! 我要做的是将您的角色设置为您想要的访问级别,然后为您的所有 URL 创建 Requestmap 条目,除了您的注册和登录控制器(ACEGI 作为可选控制器提供这两种功能/意见)。因此,如果您应用一个 Requestmap 来表示一个名为 TosecureController 的控制器,它应该在您的 grails 应用程序中有一个 /tosecure 的 URL。在 Requestmap 中为 /tosecure/** 创建一个,它将由登录 ACEGI 控制器/视图保护(我在解释) 简单的方法 - 制作一个匹配一切的通用请求图,并让它需要“用户”角色。然后,您希望匿名访问的东西,覆盖它们。【参考方案3】:

您需要 Spring 安全插件。最好的方法不是在您的 GSP 中,而是对所有 Web 请求使用过滤器。这会给你提到的 Requestmaps 和 UrlMappings GrailsNewbie。

【讨论】:

您好,我正在使用 acegi 插件,如何实现该过滤器,以便如果用户未登录,他将只能浏览到 signup.gsp 和 login.gsp?

以上是关于Grails 安全问题和搜索引擎优化的主要内容,如果未能解决你的问题,请参考以下文章

mysql优化

Mysql优化系列--Innodb引擎下mysql自身配置优化

Mysql优化系列--Innodb引擎下mysql自身配置优化

Innodb引擎配置优化

SQL Server 索引优化-----数据库引擎优化顾问

网站seo优化都有哪些方法的最新相关信息