반응형


1. pom.xml dependency 추가

<dependency> 

<groupId>com.navercorp.lucy</groupId>

<artifactId>lucy-xss-servlet</artifactId> 

<version>2.0.0</version> 

</dependency>


2. web.xml 설정

<filter> 

<filter-name>xssEscapeServletFilter</filter-name> 

<filter-class>com.navercorp.lucy.security.xss.servletfilter.XssEscapeServletFilter</filter-class> 

</filter> 


<filter-mapping> 

<filter-name>xssEscapeServletFilter</filter-name> 

<url-pattern>/*</url-pattern> 

</filter-mapping>


3. /resource 폴더 내에 "lucy-xss-servlet-filter-rule.xml" 파일을 생성


lucy-xss-servlet-filter-rule.xml


<?xml version="1.0" encoding="UTF-8"?>

<config xmlns="http://www.navercorp.com/lucy-xss-servlet">

   <defenders>

       <!-- XssPreventer 등록 -->

       <defender>

           <name>xssPreventerDefender</name>

           <class>com.navercorp.lucy.security.xss.servletfilter.defender.XssPreventerDefender</class>

       </defender>


       <!-- XssSaxFilter 등록 -->

       <defender>

           <name>xssSaxFilterDefender</name>

           <class>com.navercorp.lucy.security.xss.servletfilter.defender.XssSaxFilterDefender</class>

           <init-param>

               <param-value>lucy-xss-sax.xml</param-value>   <!-- lucy-xss-filter의 sax용 설정파일 -->

               <param-value>false</param-value>        <!-- 필터링된 코멘트를 남길지 여부, 성능 효율상 false 추천 -->

           </init-param>

       </defender>


       <!-- XssFilter 등록 -->

       <defender>

           <name>xssFilterDefender</name>

           <class>com.navercorp.lucy.security.xss.servletfilter.defender.XssFilterDefender</class>

           <init-param>

               <param-value>lucy-xss.xml</param-value>    <!-- lucy-xss-filter의 dom용 설정파일 -->

               <param-value>false</param-value>         <!-- 필터링된 코멘트를 남길지 여부, 성능 효율상 false 추천 -->

           </init-param>

       </defender>

   </defenders>


    <!-- default defender 선언, 별다른 defender 선언이 없으면 default defender를 사용해 필터링 한다. -->

    <default>

        <defender>xssPreventerDefender</defender>

    </default>


    <!-- global 필터링 룰 선언 -->

    <global>

        <!-- 모든 url에서 들어오는 globalParameter 파라메터는 필터링 되지 않으며 

                또한 globalPrefixParameter로 시작하는 파라메터도 필터링 되지 않는다. -->

        <params>

            <param name="globalParameter" useDefender="false" />

            <param name="globalPrefixParameter" usePrefix="true" useDefender="false" />

        </params>

    </global>


    <!-- url 별 필터링 룰 선언 -->

    <url-rule-set>

       

       <!-- url disable이 true이면 지정한 url 내의 모든 파라메터는 필터링 되지 않는다. -->

       <url-rule>

           <url disable="true">/disableUrl1.do</url>

       </url-rule>

       

        <!-- url1 내의 url1Parameter는 필터링 되지 않으며 또한 url1PrefixParameter로 시작하는 파라메터도 필터링 되지 않는다. -->

        <url-rule>

            <url>/url1.do</url>

            <params>

                <param name="url1Parameter" useDefender="false" />

                <param name="url1PrefixParameter" usePrefix="true" useDefender="false" />

            </params>

        </url-rule>

        

        <!-- url2 내의 url2Parameter1만 필터링 되지 않으며 url2Parameter2는 xssSaxFilterDefender를 사용해 필터링 한다.  -->

        <url-rule>

            <url>/url2.do</url>

            <params>

                <param name="url2Parameter1" useDefender="false" />

                <param name="url2Parameter2">

                    <defender>xssSaxFilterDefender</defender>

                </param>

            </params>

        </url-rule>

    </url-rule-set>

</config>



*표준프레임워크 공통컴포넌트에서는HTMLTagFilter를 제공하고 있으니 확인하려면 web.xml에서 HTMLTagFilter(필터, 필터매핑)을 주석처리해주면 됩니다.


lucy에 관련된 자세한 정보는 Naver Git인 https://github.com/search?q=org%3Anaver+lucy 에서 찾으실 수 있습니다.

반응형

'IT > 보안' 카테고리의 다른 글

Yasca 설치 및 사용법  (0) 2017.09.28
SQL인젝션  (0) 2017.09.28
XSS정의 / XSS공격 / XSS방어  (0) 2017.09.27
web 어플리케이션 공격기법의 종류  (0) 2017.09.27

+ Recent posts