** Request Line(요청 라인)의 Method 종류 **
GET - 지정된 URL 정보를 요청한다.(이때 전달해야 하는 파라메터를 URL에 포함시켜서 전달한다.)
POST - 지정된 URL 정보를 요청한다. (이때 전달해야 하는 파라메터를 메시지 본문(Request Message Body)을 통해서 전달한다.)
HEAD - HTTP Header 정보만 요청한다.
TRACE - 클라이언트의 요청을 그대로 응답한다. (Request의 Loop Back 테스트)
DELETE - 요청하는 URL의 자원을 삭제한다.
OPTIONS - 응답 가능한(서버에서 지원하는) HTTP 메소드를 요청
PUT - 요청하는 URL의 자원을 생성한다. 예를 들면 파일 업로드가 가능하다.
CONNECT - 터널링의 목적으로 연결 요청
** HTTP 버전별 지원 Method **
HTTP/0.9 - GET
HTTP/1.0 - GET, POST, HEAD
HTTP/1.1 - GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT
[출처] HTTP Request Message|작성자 유상윤
Apache PHP 에서 PUT 허용
httpd.conf 파일에 다음 라인 추가
<Directory /var/www/test>
<Limit GET POST PUT DELETE HEAD OPTIONS>
Order allow,deny
#You might want something a little more secure here, this is a dev setup
Allow from all
</Limit>
<LimitExcept GET POST PUT DELETE HEAD OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
Script PUT /var/www/test/put.php
Script DELETE /var/www/test/put.php
</Directory>
마지막으로 .htaccess 에 추가
RewriteEngine On RewriteBase /test RewriteRule ^/?(api)/? put.php [NC] RewriteCond %{REQUEST_METHOD} (PUT|DELETE) RewriteRule .* put.php
Tomcat 에서 PUT 이나 DELETE 허용
출처: http://www.codereye.com/2010/12/configure-tomcat-to-accept-http-put.html
Tomcat은 디폴트로 PUT 메서드가 허용되지 않는다.
<servlet><servlet-name>default</servlet-name><servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class><init-param>
<param-name>debug</param-name><param-value>0</param-value></init-param>
<init-param><param-name>listings</param-name><param-value>false</param-value>
</init-param><init-param><param-name>readonly</param-name><param-value>false</param-value></init-param>
<load-on-startup>1</load-on-startup></servlet>
tomcat-users.xml 파일에서 PUT 메서드를 허용할 사용자를 등록한다.
<?xml version='1.0' encoding='cp1252'?><tomcat-users><user name="admin" password="admin" roles="admin" /></tomcat-users>
web.xml 파일에서 PUT 메서드를 허용하고자 하는 웹 애플리케이션에 대해 security constraint을 설정한다.
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version="2.5"><security-constraint><web-resource-collection><web-resource-name>Demo App</web-resource-name><url-pattern>/*</url-pattern><http-method>PUT</http-method>
</web-resource-collection><auth-constraint><role-name>admin</role-name></auth-constraint></security-constraint><login-config><auth-method>BASIC</auth-method><realm-name>Demo App</realm-name></login-config><security-role><description>Role for restricted resources</description>
<role-name>admin</role-name></security-role></web-app>
'보안 > 웹 해킹_보안' 카테고리의 다른 글
UNION SQL 사용법 (0) | 2013.10.15 |
---|---|
ModSecurity를 이용한 아파치 웹서버 보안 (0) | 2013.10.14 |
Paros 사용방법 (0) | 2013.10.13 |
[확인문제 해답] 웹해킹&보안 완벽가이드 (0) | 2013.10.13 |
아파치 mod-security 설치(데비안6.0) (0) | 2013.10.04 |