반응형

eAccelerator is a free open-source PHP accelerator & optimizer.

홈페이지 : http://www.eaccelerator.net/http://www.eaccelerator.net/

다운로드 : http://bart.eaccelerator.net/source/0.9.6.1/


checksum
c95e87229a6e674b4994d4fc13278e516ea314f9 eaccelerator-0.9.6.1.tar.bz2
0ef91fb7579c3bf5c0e94d5ec2521c389de91ba8 eaccelerator-0.9.6.1.zip 


설치

소스 압축풀고 디렉토리로 이동해서

phpize
./configure
make
make install


php.ini 설정 추가(eaccelerator.so 파일의 경로가 맞도록)

extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

캐쉬 디렉토리 생성 및 권한부여

mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator

웹서버 재시작 후 확인

php -v 또는 페이지로 phpinfo 찍어본다.

확인

ab -n1000 http://mydomain.com/


다른 종류의 PHP Accelerator 소개 : http://www.ducea.com/2006/10/30/php-accelerators/

드루팔 환경의 속도비교 : http://2bits.com/articles/benchmarking-apc-vs-eaccelerator-using-drupal.html





반응형
반응형



[출처 http://www.w3c.or.kr/~hollobit/presentation/20100623-smartphone-r2.pdf]

스마트폰 os의 현황을 보면 안드로이드와 아이폰이 쌍벽을 이루고 있는 실정.
그렇다면, 앱스토어의 20만개, 구글마켓의 7만5천개 어플들이 각각 늘어갈 것인가..
아마도 당연히 두 운영체제사이의 추상계층(Abstrac Layer)이 발생하게 될것이고, OS의 종류에 상관없는 개발이 가능해지겠죠.

벌써 준비해서 진행되고 있지 않을까?
구글링을 해보았지만 아직 그런것은 안보이는걸보면 누군가 몰래 준비하고 있나봅니다.

아무튼 해야할 일들이 늘어만 가네요 ㅎㅎㅎ

반응형

'취미 그리고 생각' 카테고리의 다른 글

기술의 고마움 - 다음 로드뷰  (0) 2010.08.24
g를 c로 바꾸면...  (0) 2010.07.14
케이지 세그표  (0) 2010.01.28
읽어볼책 - Free  (0) 2010.01.25
하나노케이지  (0) 2010.01.11
반응형

어제 미팅이 있어서 이야기하던 중 이런 질문이 나왔습니다.

공개SW는 공짜다라는데 어떻게 이야기해야 하느냐?

정답부터 말하자면 오픈소스가 공짜인 기업도 있고, 그렇지 않은 기업도 있습니다.

이 문제는 비용의 관점을 어떻게 보느냐에 따라서 달라지는 것이 아닐까요

만일 오픈소스기반의 개발방법론이 정착된 환경의 기업이라면, 공짜입니다.
이런 경우라면 오픈소스라이선스에 대한 검토가 있을것이고,
참여과 기여를 통한 SW의 질적향상에 대한 경험, 오픈소스의 자유로운 배포정신 등을 이해하고 있을테니까.
좋은 SW를 무료로 사용하면서 비지니스를 창출할 수 있습니다.
자신이 좋은SW들을 패키징해서 제품으로 판매할 수도 있고(redhat, suse 등), IT서비스를 컨설팅할 수도 있으며(openlogic), 다른 IT서비스 카테고리를 선택할 수도 있고(blackduck), 하드웨어와 접목한 융합기기를 만들어 낼 수도 있습니다(embeded).

하지만, 오픈소스에 대한 이해와 학습이 없는 기업이라면 공짜가 아닙니다.
SW구매이후 발생될 여러가지 비용을 포함해야 하는 기업환경에서
소스코드의 자유로운 배포를 기본으로 하며(gpl,lgpl,mpl,bsd등), 적합한 라이센스를 검토해야 하고,
해당 SW에대한 기술지식, SW에 대한 유지보수 능력등이 필요한 오픈소스 SW를 공짜라고 판단하는것은  잘못된 생각입니다..

공개SW를 사용해야 할까요?

기업의  CTO가 오픈소스철학을 이해하고 있다는걸 전제한다면, 오픈소스는 기업의 EA에 많은 이익을 가져다 준다.
수 많은 SW의 리펙토링이 가능하고, 글로벌에 적용되는 SW개발방법론을 기업의 인적자원에게 숙련시킬수도 있으며
다양한 SW를 통해서 창의적인 아이디어를 획득할 기회도 증가합니다.

참여와 공유를 통해서 집단지성이 제공되는 최근의 흐름을 생각해볼때,
세상이 스마트해지면 해 질수록 오픈소스에 대한 이해는 더욱 필요합니다.






반응형
반응형

프로파일링이 왜 필요할까
[원문보기] [한글]

소프트웨어를 설계하고 코딩을 하다보면 프로그램을 최적화할 때가 있다.
대부분의 프로그램은 80:20 법칙을 따른다. 전체 코드의 20%가 전체 시간의 80%를 차지한다.

그래서 프로그래머가 해당 컴퓨터 아키텍쳐의 세세한 부분보다는 논리에 집중하여 프로그래밍 시간을 줄여주는
자바나 C#같은 언어가 인기를 얻었다.
프로그램의 실행시간은 길어지지만, 프로그래머의 시간은 절약된다.

그러나 프로그램을 더 빨리 실행하기위한 최적화가 필요하지 않다는 말은 아니다.
많은 컴파일러는 알아서 최적화를 한다.
예를 들어, GCC 컴파일러는 (대문자 주의) -O 옵션으로 최적화 수준을 지정한다.

프로파일링(profiling)은 프로그램의 성능을 높이기위해 최적화할 코드및 함수의 위치를 발견하도록 도와준다.
프로그램에서 10번만 호출하는 함수보다 1000번 호출하는 함수를 최적화하는게 당연하다고 생각하지 않는가.
프로그램을 프로파일링하면 코드의 어떤 부분을 자주 사용하고 어떤 함수가 CPU 시간을 많이 잡아먹는지 알 수 있다.
이 두 정보는 최적화할 대상을 정하는데 유용하다.
실제 프로그램을 실행하면서 정보를 모으기때문에 감춰진 버그를 찾는데도 유용하다.
실행중에 예기치않게 어떤 함수를 1000번 호출한다면 설계상 문제이거나 버그일 수 있다.
또, 크고 복잡한 프로젝트에서 코드를 살펴볼때도 유용하다.

프로파일링 정보에는 두가지 종류가 있다 :-

    * Flat Profile
      함수별로 사용하는 CPU 시간과 호출 횟수를 보여준다. 수집한 전체 프로파일링 정보의 간단한 요약이다. 성능을 높이기위해 어떤 함수를 다시 작성하거나 수정할지 알려준다.

    * Call Graph
      모든 함수에 대해 자신을 포함하여 다른 함수가 호출한 횟수를 보여준다. 그래서 어떤 함수 호출을 없애거나 다른 효율적인 함수로 대체할지 제안한다. 이 정보는 함수들간의 관계를 드러내고, 감춰진 버그를 알려주기도 한다. 호출그래프를 본 후에 특정 코드 경로를 최적화하고 싶을 것이다.



Xdebug 설치하기
http://www.xdebug.org/docs/install
- xampp 패키지로 개발환경을 구축했다면 xdebug가 포함되어 있으므로 별도로 디버거를 설치할 필요없이 php.ini의 설정만 변경해주면 된다.

Xdebug 프로파일링을 통해 얻어진 파일의포멧은 cachegrind 의 포멧을 따르고 있다.
Xdebug에서 프로파일링된 파일을 생성하도록 설정해 주었다면 아래의 도구들 중 하나를 골라서 분석 가능하다.

Xdebug 프로파일링을 위한 웹기반 분석도구 webgrind
http://code.google.com/p/webgrind/downloads/list

Xdebug 프로파일링을 위한 설치형 분석도구 WinCacheGrind
http://sourceforge.net/projects/wincachegrind/

리눅스용 분석도구
kcachegrind
http://kcachegrind.sourceforge.net/html/Home.html


Xdebug 설정 관련한 참고문서
http://www.ibm.com/developerworks/opensource/library/os-php-xdebug/


php.ini 설정
; xdebug
zend_extension = C:\xampp\php\ext\php_xdebug-2.1.0RC1-5.3-vc6.dll
xdebug.default_enable = On
xdebug.show_exception_trace = On
xdebug.show_local_vars = 1
xdebug.max_nesting_level = 50
xdebug.var_display_max_depth = 6

xdebug.dump_once = On
xdebug.dump_globals = On
xdebug.dump_undefined = On
xdebug.dump.REQUEST = *
xdebug.dump.SERVER = REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT,SCRIPT_NAME

xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

;모든 파일에 대하여 자동으로 프로파일링할때
;xdebug.profiler_enable = 1
; 특정파일만 프로파일링 하고 싶을때 XDEBUG_PROFILE 을 get으로 실행한다.
; ex : http://example.com/sample.php?XDEBUG_PROFILE
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir ="C:\xampp\tmp"
;cachegrind 포멧으로 설정
xdebug.profiler_output_name = cachegrind.out.%t.%p


http://localhost/test.php?XDEBUG_PROFILE 처럼 호출하면 프로파일링이 시작되고, 설정한 디렉토리에 파일이 생성된다.

분석결과를 webgrind 로 본 화면


분석결과를 WinCacheGrid로 본 화면


반응형
반응형
fckeditor 사용하면서 보안상 이슈가 있어서 수정.

절대경로를 상태경로로 변경해야 방화벽 룰셋을 통과하는 부분에 대한 링크
http://dev.fckeditor.net/ticket/2875
http://www.geeklog.net/forum/viewtopic.php?showtopic=86782

mod_security 의 htaccess Tip
- 회사서버에는 적용되지 않는 상태
http://www.askapache.com/htaccess/mod_security-htaccess-tricks.html#menu0-el9

구글링
http://www.google.co.kr/search?hl=ko&newwindow=1&q=fckeditor+file+browser+modsecurity+error&aq=f&aqi=&aql=&oq=&gs_rfai=


mod_security 룰셋 추가설정
KISA에서 받은 룰셋중 fckeditor 를 사용하면서 오류가 나는 부분이 있어서 아래와 같이 수정

# dir|page 가 들어가 있으면서 https가 요청되는 경우가 fckeditor 에서 발생하기 때문에 수정
SecRule REQUEST_URI "(dir|page|)" chain
#SecRule REQUEST_URI "=(http|https|ftp)\:/"
SecRule REQUEST_URI "=(https|ftp)\:/"
SecRule REQUEST_URI "shell_exec\(" "msg:'PHP Injection Attacks'"

반응형

'개발도 하냐?' 카테고리의 다른 글

디자이너에게 배우다.  (1) 2010.07.07
PHP 코딩 규약 - PEAR  (0) 2010.06.25
Prototype URL encode, decode  (0) 2010.06.19
정규표현식(regular expressions)  (0) 2010.06.16
HTTP 응답코드  (0) 2010.06.13
반응형
Prototype URL encode, decode 
    String.prototype.URLEncode = function URLEncode() {
        var SAFECHARS = "0123456789" +     // Numeric
     "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + // Alphabetic
     "abcdefghijklmnopqrstuvwxyz" +
     "-_.!~*'()";     // RFC2396 Mark characters
        var HEX = "0123456789ABCDEF";
        var plaintext = this;
        var encoded = "";
        for (var i = 0; i < plaintext.length; i++) {
            var ch = plaintext.charAt(i);
            if (ch == " ") {
                encoded += "+";    // x-www-urlencoded, rather than %20
            } else if (SAFECHARS.indexOf(ch) != -1) {
                encoded += ch;
            } else {
                var charCode = ch.charCodeAt(0);
                if (charCode > 255) {
                    alert("Unicode Character '"
                        + ch
                        + "' cannot be encoded using standard URL encoding.\n" +
              "(URL encoding only supports 8-bit characters.)\n" +
        "A space (+) will be substituted.");
                    encoded += "+";
                } else {
                    encoded += "%";
                    encoded += HEX.charAt((charCode >> 4) & 0xF);
                    encoded += HEX.charAt(charCode & 0xF);
                }
            }
        } // for
        return encoded;
    };




    String.prototype.URLDecode = function URLDecode() {
        var HEXCHARS = "0123456789ABCDEFabcdef";
        var encoded = this;
        var plaintext = "";
        var i = 0;
        while (i < encoded.length) {
            var ch = encoded.charAt(i);
            if (ch == "+") {
                plaintext += " ";
                i++;
            } else if (ch == "%") {
                if (i < (encoded.length - 2)
     && HEXCHARS.indexOf(encoded.charAt(i + 1)) != -1
     && HEXCHARS.indexOf(encoded.charAt(i + 2)) != -1) {
                    plaintext += unescape(encoded.substr(i, 3));
                    i += 3;
                } else {
                    alert('Bad escape combination near ...' + encoded.substr(i));
                    plaintext += "%[ERROR]";
                    i++;
                }
            } else {
                plaintext += ch;
                i++;
            }
        } // while
        return plaintext;
    };
반응형

'개발도 하냐?' 카테고리의 다른 글

PHP 코딩 규약 - PEAR  (0) 2010.06.25
mod_security AND fckeditor  (0) 2010.06.21
정규표현식(regular expressions)  (0) 2010.06.16
HTTP 응답코드  (0) 2010.06.13
CakePHP Framework  (0) 2010.06.09
반응형


외부사이트의 조회수를 가져와야 하는경우 정규식

유투브 :  \d+(\,*)\d+
플리커 : Viewed (\d+) times




출처 : http://user.chollian.net/~spacekan/source/string/regExp.htm

Special characters in regular expressions

특수문자 의미
\
다음 글자가 일반적인 글자가 아니고 특수문자로 사용된다는 지정이다. 특수문자로 사용할 문자앞에 backslash(\)를 붙여준다. \w는 w가 특수문자로 사용됨을 나타낸다. \w의 의미는 모든 문자를 가리킨다.

또는 반대로 특수문자를 일반적인 문자로 지정하게 한다. \\는 backslash(\)문자를 나타낸다. \\\/는 slash(/) 문자를 나타낸다.

^
input이나 line의 시작문자. /^A/는 "Amatch"와는 맞지만 "an Amatch"와는 맞지 않는다.
$
input이나 line의 끝문자. /A$/는 "abA"와는 맞지만 "aAb"와는 맞지 않는다.
*
앞 문자가 0번 이상 있으면 맞다. 없어도 되고 여러개 있어도 된다. /ab*c/는 "abbbc"와 맞다. "ac"와도 맞다. 하지만, "ax"와는 맞지 않는다.
+
앞 문자가 1번 이상 있으면 맞다. 1개 이상 있어야 하고 여러개 있어도 된다. /ab+c/는 "abbbc"와 맞다. 하지만, "ac"와는 맞지 않는다.
?
앞 문자가 0번이나 1번은 있어야 맞다. /ab?c/는 "abc"와 맞고 "ac"와도 맞다. 하지만, "abbc"와는 맞지 않는다.
.
개행문자(\n)외에 모든 문자이면 맞다. /.c/는 "Xc", "1c"와 맞다. 하지만, "ca", "\\nc"와는 맞지 않는다. (\\n은 \n의 뜻이다. 특수문자로 사용되는 \를 문자로 표현하기 위해서 앞에 \를 붙여준다. )
(x)
문자 'x'를 검색하고 맞으면 'x'를 기억한다. /a(bc)/는 "abcd"에서 검색되고 "bc"를 기억한다. 이 기억된 것은 RegExp 객체의 $1에서 $9까지로 또는 배열 [1]에서 기억된 숫자 [n]개 까지로 호출될 수 있다.
x|y
'x'나 'y'가 있으면 맞다. /abc|xx/는 "abc ZZZ"나 "xx ZZZ"와 맞다.
{n}
앞 문자가 n개 있으면 맞다. n은 양수 정수이다. /X{2}/는 "abcXX"와 맞다. "abcXXX"와도 맞고 처음 2개의 "XX"가 검색된다.
{n,}
앞 문자가 최소한 n개 있으면 맞다. n은 양수 정수이다. /X{2,}/는 "abcXX"와 맞다. "abcXXX"와도 맞고 3개의 "XXX"가 검색된다.
{n,m}
앞 문자가 최소한 n번에서 m번까지 있다면 맞다. /a{1,3}/은 "ab", "aaab"와 맞다.
[xyz]
xyz 중에서 아무런 문자가 있어도 맞다. 이것은 [x-z]과 같은 지정이다.
[^xyz]
xyz 중에서 하나의 문자라도 없으면 맞다. 이것은 [^x-z]과 같은 지정이다.
[\b]
backspace
\b
공백같은 것으로 단어의 경계되는 부분에 있는 문자이다. /\bX/는 "Xxx"와 맞다. /X\b/는 "xxX"와 맞다.
\B
\b와 반대이다. 단어 경계에 있지 않은 문자만 맞다. /X\Bz/는 "XXz Xzz"에서 두번째의 "Xz"가 검색된다.
\cX
control-X 문자와 맞다. /\cM/은 control-M 문자이다.
\d
숫자는 맞다. [0-9]와 같은 지정이다. /\d/는 "hi5"에서 "5"를 검색한다.
\D
숫자가 아닌 것은 맞다. [^0-9]와 같은 지정이다. /\D/는 "hi5"에서 "h"를 검색한다.
\f
form-feed(\f) 문자와 맞다.
\n
linefeed(\n) 문자와 맞다.
\r
carriage return(\c) 문자와 맞다.
\s
space, tab, form feed, line feed를 가지고 있는 white space 문자와 맞다.[ \f\n\r\t\v]와 같은 지정이다. /\s\w*/는 "abc Xz"에서 "Xz"를 검색한다.
\S
white space 문자가 아닌 하나의 문자이다. [^ \f\n\r\t\v]와 같은 지정이다. /\S\w*/는 "abc Xz"에서 "abc"를 검색한다.
\t
tab 문자
\v
vertical tab 문자
\w
underscore(_)문자를 포함하는 알파벳과 숫자 0에서 9까지의 문자. [A-Za-z0-9_]와 같은 지정이다.
\W
\w의 반대이다. [^A-Za-z0-9_]와 같은 지정이다. /\W/는 "50%"에서 "%"를 검색한다.
\n
n은 양수 정수이다. ()로 묵은 것을 지정한다. \1은 RegExp.$1, \2는 RegExp.$2의 값을 사용한다. /ab(c)de\1/은 "abcdec"와 맞다.
\o숫자, \x숫자
escape문자로 ASCII codes 값을 넣을 수 있게한다. 8진, 16진 10진수를 넣을 수 있다.
반응형

'개발도 하냐?' 카테고리의 다른 글

mod_security AND fckeditor  (0) 2010.06.21
Prototype URL encode, decode  (0) 2010.06.19
HTTP 응답코드  (0) 2010.06.13
CakePHP Framework  (0) 2010.06.09
editplus setting  (0) 2010.06.06
반응형


우선 테스트 자동화 도구는 테스트 수행의 어떤 단계를 자동화 하느냐에 따라 크게
테스트의 관리/실행(execution)/생성(generation)/측정(measurement) 자동화 도구로 분류할 수 있습니다.

- 첫번째로, 테스트의 관리(management)를 자동화하는 도구는 테스트 과정에서 산출되는 테스트 케이스/슈트/스크립트 및 각종 문서들을 통합관리하는 기능을 제공합니다.
- 두번째로, 테스트의 실행(execution)을 자동화하는 도구는 테스트 대상 프로그램의 수행 및 제어를 자동화하는 기능을 제공합니다.
- 세번째로, 테스트의 생성(generation)을 자동화하는 도구는 테스트 대상 프로그램에 입력으로 주어지는 테스트 케이스 및 테스트 스텁(stub) 등을 자동으로 생성하는 기능을 제공합니다.
- 네번째로, 테스트의 측정(measurement)을 자동화하는 도구는 테스트 수행에 따른 커버리지(coverage) 측정 등의 과정을 자동화합니다.

위의 네 가지 분류는 테스트 자동화 도구를 상호 배타적으로 분류하는 기준은 아닙니다. 다시말해 하나의 테스트 도구가 위의 네 가지 분류에 모두 속할 수도 있다는 것입니다. 예를 들어, 어떤 GUI Record/Playback 자동화 도구가 테스트 대상 GUI 응용프로그램을 수행하고 사용자로부터 주어지는 모든 이벤트를 기록한 후 저장하였다가 회귀(regression) 시험과정에서 저장된 데이터를 다시 활용하는 기능을 제공하고 테스트 수행결과에 대해 다양한 커버리지 측정결과를 제공한다면, 이 자동화 도구는 위의 네 가지 분류에 모두 속할 수 있는 것이죠.

또한, 위의 분류에서 테스트의 실행(execution) 자동화 도구와 생성(generation) 자동화 도구는 테스트 케이스 및 테스트 하니스(harness) 등의 테스트 수행에 필요한 입력 및 환경 등을 자동으로 생성하느냐에 따라 중요한 차이점을 갖습니다.

[출처] STEN - http://www.sten.or.kr/bbs/board.php?bo_table=test_story&wr_id=1659


테스트 자동화 도구들

Selenium



http://seleniumhq.org/download/
http://wiki.openqa.org/download/attachments/400/Selenium+IDE.swf

Selenium 사용에 대한  강규영님의 강좌 동영상 - http://barcamp.tistory.com/18

Selenium 사용 한글 설명 : http://kwon37xi.springnote.com/pages/804128.xhtml

Amazon의 E2C 클라우드를 이용해서 Selenium으로 대규모 부하 테스트를 할 수 있는 사이트

http://saucelabs.com/

Selenium 스크립트를 만든후에, 로드하면 Amazon 클라우드를 이용하여 부하테스트를 하고, 그 결과를 리포팅.
Load R*와 같은 툴을 사용할 수 없는 곳이나, 이미 Selenium으로 테스트 코드를 구현해 놓은 곳에서는 저비용으로
유용하게 사용가능.

Selenium과 Continuous Integration 통합
http://www.javajigi.net/pages/viewpage.action?pageId=267845637

Selenium 한글화
http://alankang.tistory.com/198

HtmlUnit

http://sourceforge.net/projects/htmlunit/

http://samie.sourceforge.net/

JUnit
http://github.com/KentBeck/junit/downloads

jsspec
http://code.google.com/p/jsspec/
매뉴얼 : http://jania.pe.kr/aw/moin.cgi/JSSpec/Manual
JSSpec용 EditPlus ACP,STX 파일 : http://hiphapis.net/entry/AcpStxForJSSpec

유닛테스트에서 시각과 시간
http://alankang.tistory.com/176





반응형
반응형


editplus 사용자를 위한 소스코드 정리기입니다.


프로그램 그룹으로 등록해서 사용.(텍스트필터로 실행)
제 경우 인수는 2t D D D,script,?,?php $(CurSel) 사용



사용법

[들여쓰기][코드들여쓰기] [태그리스트1] [태그리스트2] [태그리스트3] ($CurSel)
---------------------------------------------------------------------------
ex) 2t D D D $(CurSel)

    * 들여쓰기
      0~9까지의 숫자, 탭문자를 이용하고 싶으면 t를 사용
    * 코드들여쓰기
      0~9까지의 숫자, 탭문자를 이용하고 싶으면 t를 사용
      코드 정렬을 안하려면 n을 사용한다
    * 태그리스트1
      들여쓰기할 태그 리스트, D를 이용하면 기본 태그를 사용한다.
      기본 목록은 tr,td,div,ol,ul,li 이다.
      추가하고 싶다면, D뒤에 컴마(,)를 이용 추가하면 가능하다.
      D를 없애고 직접 적어주는것도 가능하다.
    * 태그리스트2
      들여쓰기는 안하지만 한줄에 하나만 있어야할 태그 리스트.
      D를 이용하면 기본 태그를 사용한다.
      기본 목록은 html,head,body,title,meta,table,link,map,select 이다.
    * 태그리스트3
      정리를 안할 태그 리스트, D를 이용하면 기본 태그를 사용한다.
      기본 목록은 pre,style 이다.
      script, ?, ?php 를 넣어두면 php와 javasript가 html의 정렬과 상관없이 정렬된다.



참고 : http://blogdoc.nate.com/820498

반응형
반응형
보안서버 구축 후, 일반 사용자에게 암호화 되고있는 효과를 보여주기 위해서는 http 패킷을 보여줘야 한다.
(http가 plain text로 통신되며 안전하지 않은 것을 눈으로 보여주기 위해서 이 문서를 작성.)

http로 통신되는 내용을 보기위한 방법은 여러가지 존재하는데
그 중 윈도우 사용자를위한 패킷분석도구를 사용해서 http를 살펴보자.
libpcap, ehtreal 기반의 훌륭한 패킷분석도구가 오픈소스로 제공되니 설치해보자.

Packetyzer - 패킷분석기

http://sourceforge.net/projects/packetyzer/


설치를 일반적인 윈도우 프로그램과 동일하게 진행하고 난 후
아래의 아이콘을 클릭하면 패킷을 분석하기 시작한다.



이 상태에서 브라우저를 열고 대상사이트를 방문하여, 로그인 같은 과정을 진행한다.
그리고 위의 버튼을 한번더 클릭하면 패킷분석이 중단된다.

여러가지 네트워크 관련 트래픽이 일어나는 pc의 경우라면 많은 내용이 빠르게 흘러가면서 캡처될것이다.
그 중 원하는 내용만 별도로 보기위해서 프로그램 하단의 filter를 이용하자.


설정한 주소만 보여달라는 필터를 설정을 한 후 apply버튼을 누르면 해당하는 ip의 내용만 나타난다.

아주 다양한 유형의 필터를 설정해서 볼수 있으므로,
필터의 상세한 내용은 프로그램 상단메뉴의 > Windows > Show FilterList 를 보자.

내용을 살펴보면 아래처럼 아이디와 비밀번호를 평문으로 전달하고 있는것을 볼 수 있다.




이번에는 브라우저의 주소를 보안서버가 적용된 https로 접속하여 패킷을 분석해보자.
그 결과 전달된 내용이 암호화 되고 있음을 볼 수 있다.


반응형

+ Recent posts