참고 : http://linuxism.tistory.com/558

/favicon.ico HTTP/1.1" 404 에러 없애는 방법

apache 를 설치한뒤에 access.log 와 error.log 에 귀찮게도 자주 나오는 favicon.ico 에러를 안나오게 하는 방법에 대해 정리하겠습니다. 별로 안어려우니 따라해보시면 됩니다.


(1)  error.log 상에 favicon.ico 로그 안찍히게 하는 방법.

error.log 에러로그

=> [Wed Aug 24 11:10:52 2011] [error] [client 10.225.23.118] File does not exist: /jboss/jboss-as-web-7.0.0.Final/standalone/deployments/test.war/favicon.ico


* 설정파일 : httpd.conf

* 설정방법은 아래와 같다. (error.log 아래에 붙이면 된다.)

Redirect 404 /favicon.ico

<Location /favicon.ico>

   ErrorDocument 404 "No favicon"

</Location>


(2) access.log 상에 favicon.ico 로그 안찍히게 하는 방법

* access.log 에러로그  => /favicon.ico HTTP/1.1" 404


설정파일 : httpd.conf

* 설정부분은 아래와 같으며, access.log 설정부분에 충돌안나게 변경하면 된다.

SetEnvIf Request_URI "favicon.ico" do_not_log

CustomLog logs/access.log common env=!do_not_log


간단한거니 불필요한 에러는 안나게 해버리세요.. 열공하세용.


출처 - http://kletgdgo.blog.me/90121425629


===================================================================================


favicon.ico 만들기

[출처] favicon.ico 만들기|작성자 엔젤반


웹 사이트 루트 디렉터리에 favicon.ico라는 이름의 아이콘 파일을 올려두면, 사용자가 즐겨찾기(Favorites)에 추가할 때 아이콘이 자동으로 그 사이트의 로고로 바뀌도록 할 수 있다.

 

다시 이야기하여 사용자가 어떤 페이지를 즐겨찾기에 추가하면 아이콘을 자동으로 다운로드하여 바꾸어 주는 기능이다.

 

웹 사이트의 루트 디렉터리에 favicon.ico라는 이름의 아이콘 파일을 올려두기만 하면 됨.

단, 이 기능은 Internet Explorer 5 이상에서 지원한다.

 

favicon.ico 파일을 직접 지정하기

개인 홈페이지처럼 루트 디렉터리에 직접 favicon.ico 파일을 올려두기 곤란하거나 다른 이름 또는 다른 위치의 아이콘 파일을 지정하고 싶다면 다음과 같이 할 수 있다.

<LINK REL="SHORTCUT ICON" href="/path/logo.ico">

위와 같은 형식으로 LINK element를 사용할 수 있으며, 웹 페이지 Header(<head>...</head>)에 가볍게 적어줄 수 있다.

<LINK REL="SHORTCUT ICON" href="./galaxy.ico"> 
<LINK REL="SHORTCUT ICON" href="http://www.i-biznet.com/favicon.ico">

아이콘 파일은 비트맵 이미지이면서 고유의 파일 포맷을 가지고 있다. 16x16, 32x32 픽셀 등으로 크기를 선택할 수 있으며, 256 색상 이상을 사용할 수 있지만, 16 색상만 사용하는 것이 기본이다. favicon.ico 파일은 가능한 16x16 픽셀, 16 색상의 아이콘 파일로 만드는 것이 좋다.

문제는 아이콘 파일을 직접 만드는 것인데, 아이콘 만들기 도구의 선택부터 생각만큼 쉽지 않다. Favicon.com에서는 Java로 구현한 아이콘 만들기 프로그램을 온라인에서 직접 실행할 수 있도록 하여 이러한 고민을 어느 정도 해결해주고 있다.

Favicon Icon Generator는 16x16 픽셀의 아이콘을 16 색상으로 제작할 수 있는 간단한 도구이다. 색상 선택, 칠하기/지우기, Zoom In/Out 등 꼭 필요한 기능 정도만 제공하고 있지만, 아이콘 파일을 만드는데 크게 부족함이 없다.


http://favicon.com/ 페이지에 들어가면 맨 윗줄에 Favicon Maker가 있다.

링크를 누르면

http://favigen.com/ 페이지로 이동하는데

이곳에서

1) Upload Source Image: 원본소스 이미지 파일을 올리고
2) Choose Favicon Size: 파비콘 사이즈를 선택하고
3) Create Favicon 버튼을 누르면 파비콘이 생성된다.
파일이 생성된 후에 Download your favicon 버튼을 누르면 파일을 다운받을 수 있다.
이것을 홈페이지 index.html이 있는 위치에 넣으면 된다.


Http Response 에 아래 값을 넣어주면 됨

Key : X-Frame-Options
Value : SAMEORIGIN

X-Frame-Options 옵션 값

 DENY

 해당 페이지는 frame을 표시할 수 없다. 

 SAMEORIGIN 

 해당 페이지와 동일한 orgin에 해당하는 frame만 표시할 수 있다.

 ALLOW-FROM uri 

 해당 페이지는 지정된 orgin에 해당하는 frame만 표시할 수 있다.


X-Frame-Options 는 그 명칭에서도 알 수 있듯이 확장 해더이기때문에 모든 브라우저가 해당 옵션에 대해 동작하는것은 아니다.
크롬 4.1 , IE 8 , 오페라 10.5 , 사파리 4.0 , 파이어폭스 3.6.9 이상에서는 DENY , SAMEORIGIN 이 적용되며, ALLOW-FROM 은 각 브라우저 마다 지원 현황이 다르다.


* Apache 설정
환경파일 중 해당태그 (<Directory>, <Location>, <Files>, <VirtualHost>) 안에 아래 코드 추가

Header always append X-Frame-Options SAMEORIGIN 


* Java Application

response.addHeader("X-Frame-Options", "SAMEORIGIN"); 


* Application Filter

- web.xml

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

<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>OWASP ClickjackFilter</display-name>
    <filter>
        <filter-name>ClickjackFilterDeny</filter-name>
        <filter-class>org.owasp.filters.ClickjackFilter</filter-class>
        <init-param>
            <param-name>mode</param-name>
            <param-value>DENY</param-value>
        </init-param>
    </filter>
    
    <filter>
        <filter-name>ClickjackFilterSameOrigin</filter-name>
        <filter-class>org.owasp.filters.ClickjackFilter</filter-class>
        <init-param>
            <param-name>mode</param-name>
            <param-value>SAMEORIGIN</param-value>
        </init-param>
    </filter>
    
    <!--  use the Deny version to prevent anyone, including yourself, from framing the page -->
    <filter-mapping> 
        <filter-name>ClickjackFilterDeny</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!-- use the SameOrigin version to allow your application to frame, but nobody else
    <filter-mapping> 
        <filter-name>ClickjackFilterSameOrigin</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    -->
    
</web-app>

 
- source

package org.owasp.filters;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

public class ClickjackFilter implements Filter 
{

    private String mode = "DENY";
    	
    /**
     * Add X-FRAME-OPTIONS response header to tell IE8 (and any other browsers who
     * decide to implement) not to display this content in a frame. For details, please
     * refer to http://blogs.msdn.com/sdl/archive/2009/02/05/clickjacking-defense-in-ie8.aspx.
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse res = (HttpServletResponse)response;
        res.addHeader("X-FRAME-OPTIONS", mode );			
        chain.doFilter(request, response);
    }
    
    public void destroy() {
    }
    
    public void init(FilterConfig filterConfig) {
        String configMode = filterConfig.getInitParameter("mode");
        if ( configMode != null ) {
            mode = configMode;
        }
    }
    
}


* javascript

<script>

if(top != window) {
  top.location = window.location
}
</script>


Apache 환경파일 중 해당 태그(<Directory>, <Location>, <Files>, <VirtualHost>) 안에 아래 설정정보 추가 후 Apache Restart

# rewrite 모듈 로드가 안 된 경우 주석 해제
# LoadModule rewrite_module modules/mod_rewrite.so
<IfModule mod_rewrite.c>
    RewriteEngine On

    # GET, POST를 제외하고 모두 405 페이지로 이동
    RewriteCond %{REQUEST_METHOD} !^(GET|POST)
    RewriteRule .* - [R=405,L] 
</IfModule>


HTTP Method 목록 : http://ko.wikipedia.org/wiki/HTTP

(OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT)



(참고)
* SSL 암호 스위트 지원 제한

SSLCipherSuite HIGH:MEDIUM:!MD5!EXP:!NULL:!LOW:!ADH

+ Recent posts