在将一些支票插入模板时是否存在问题?

时间:2012-01-30 10:55:53

标签: security jsf-2

如果我在模板文件中插入一些支票,是否会出现问题?例如,如果我将用户检查插入到模板的xhtml文件中,如果我在所有xhtml页面中使用此模板,则可能会出现一些安全问题?

类似的东西:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title><ui:insert name="title">Default Title</ui:insert></title>
        <h:outputStylesheet name="css/jsfcrud.css"/>
    </h:head>
    <h:body>
        <h:panelGroup rendered="#{userBean.cognome!=null}">
            Utente connesso:<h:outputText value="#{userBean.cognome}"/>&nbsp;<h:outputText value="#{userBean.nome}"/>
            <h1><ui:insert name="title">Default Title</ui:insert></h1>
            <p><ui:insert name="body">Default Body</ui:insert></p>
        </h:panelGroup>
    </h:body>
</html>

2 个答案:

答案 0 :(得分:4)

我了解您在显示内容之前检查已登录用户的存在。此可能可以这样做,但任何未登录而打开页面的用户都将收到空白内容。这不是非常用户友好。您希望将未登录的用户重定向到登录页面。

如果您正在使用Java EE提供的容器管理身份验证,则通常已将此考虑在内。但是,如果您正在进行身份验证,则需要为此创建servlet filter。如果您将所有受限制的网页收集到/app这样的公共文件夹中,以便您可以使用常用的网址格式进行过滤,例如: /app/*(并将所有公共页面,例如登录页面放在此文件夹之外),然后您应该能够按如下方式过滤掉未登录的用户,假设{{1是一个会话范围的JSF #{userBean}或一些你自己放在会话范围内的会话属性:

@ManagedBean

另见:

答案 1 :(得分:2)

我怀疑您是否会遇到安全问题,但请确保将模板放在WEB-INF文件夹中,这样模板就无法从外部看到。我还建议你使用Spring-Security。