정말 PHP가 보안에 취약한가요?

어줍짢게 아는사람. 얕게 알고 있는 사람들은 무슨 말을 하기 마렵입니다.
(정말 고수들은 듣는 걸 좋아하죠. 실제로.)
제가 지금까지 PHP를 하면서 듣기 거북했던 말은
PHP는
1) 보안에 취약하다.
2) 잠깐하면 배울 수 있다.
3) 간단하다.

라는 것이었습니다.

ASP, JSP를 한 때 다루었습니다. "정말로 PHP는 안좋은 언어인가?" 싶어서.

asp->jsp->php로 넘어갔는데 정말 PHP의 작업속도는 매우 빠르더라구요.
게다가 원하는 효과를 쉽게 넣을 수 있었습니다. (내장된 gd, mcrypt, iconv, soap등은 매우 강력합니다.)
오픈소스도 죄다 php가 압도적 이라서 훌륭한 효과도 쉽게 낼 수 있습니다. (ASP는 죄다 돈내라고 하고, JSP는 잘 안붙습니다)

다른언어에서 사용하려면 좀 긴 코드가 들어가는 것도 PHP에서는 $_COOKIE['foo'] 라고 쓰면 됩니다.

제가 사용자에게 만족을 줄 수 있는 언어이고 실제로 사용자는 결과물을 보고 만족해 합니다.

그러나. 위의 '어줍짢게 아는사람. 얕게 알고 있는 사람'은 

이런 말을 하기 마련입니다.

저도 예전에는 글쓰신분과 같이 충격을 먹었는데 지금은 많이 굳건해(?)졌습니다.



마음먹기 나름이겠지만  가끔가다 등장하시는(?) 저런 분들을 무시할 수는 없죠.

따라서 저의 경우는 이렇게 대처합니다.

--
1. 주소에서 [.php] 제거
우분투 10.04 LTS(Long Term Support;긴 기간동안 지원)에서 apm을 설치하면 

이런 주소도 올바르게 해석합니다.

(우분투 좋습니다. fedora -> cent os -> ubuntu 썼는데 정말 쉽고 간편합니다.
최근에 어떤 개발자 분이 'ubuntu는 퍼포먼스가 낮다'라는 말을 하시던데 
이건 뭔 - _- .  소스 설치하면 퍼포먼스가 올라가나요?)

2. 확장자 fake
대부분의 서버에서 지원하겠지만 rewrite 모듈이 켜져있어야 합니다.
.htaccess 파일에 다음의 코드를 넣고 사용합니다.
 
RewriteEngine On
 
 
RewriteCond %{REQUEST_URI} \.jsp$
RewriteRule ^(.*)\.jsp$ /$1\.php [L]
 

http://sir.co.kr/bbs/board.jsp?bo_table=cm_free&wr_id=595463

이런 식으로 링크를 겁니다.

참고로 네이버 파일들 확장자가 .nhn 이던데 이런 식의 rewrite가 아닐까 추측해봅니다.

3. url-handling 
요청한 주소 전체를 rewrite 합니다. 페이지마다 이름을 mapping합니다.
SEO에 맞추는데 좋고 절대로 PHP 티가 나지 않습니다.

--

정말 어떨 땐 서럽네요. 
이렇게 까지 해야하나 싶고
하지만 위와 같이 대처해서 손해보는 것은 아니니까

개발자분들 모두 php에 자긍심을 갖자구요!
화이팅입니다.
|

댓글 12개

전 JSP->PHP 하고 있는데
다시 JSP 로 갈 계획인데..
여태까지 PHP 를 사용하면서 느낀점은 간단하게 말해
'편하다!' 라는 것입니다.
다들 PHP 가 보안에 약하다고 말씀하시는게 제 생각으론
워낙 코드가 오픈되어 있는 상태라 보니 그런 말씀을 많이 하는것 같아요. 많이 오픈되다보니 그 코드를 쓰는 사람도 많을테구요 ^^
상황에 따라서 언어 선택이 달라지는게 아닐까요??
전 예전에 perl로 웹구현하다가 php가 나오고 나서 php의 속도에 무지 놀랐습니다.
속도 뿐만 아니라 개발 편의성이러던지 등..

전 자바 전문 개발자이지만 개인적으로 일을 받아서 할 때는 항상 리눅스 서버인 경우는 php를 사용합니다. 속도 빠르고 개발 생산성 좋고 ㅎㅎ 굳이 일반 홈페이지 정도 만드는데 mvc며 기타 프레임웍 등을 적용해서 자바로 개발할 필요성을 못느낍니다.
보안쪽에 지식이 있으신분이 개발하면 php도 보안은 안전합니다.

초보 개발자 2명이 있다고 과장해봅시다 1명은 php , 1명은 jsp

jsp 프레임웍 같다 붙여놓으면[아이바티스 , 스프링 , 커스텀태그] 어느정도 보안 지식이 없어도 메뉴얼 대로 개발하면 SQL인젝션 , XSS 방어 가능하다. [2차적으로 솔루션으로 커버 하더라구요.]
jsp 프레임웍써서 개발하면 개발속도가 php보다 몇배는 많이 걸린답니다.

php 보안 기본지식이 없이 개발하면 sql인젝션 xss 당한다.
php로 개발하면 개발속도는 엄청 빠릅니다 ^^
php는 훌륭한 언어라고 생각합니다 ㅋㅅㅋ
어떤 언어든 인젝션 ㄷ당 할 수 있다고 생각 합니다.
단지 개발자가 ... 보안에 대한 지식이 있냐 없냐 겠죠 ㅎㅎ;
자바 개발자입니다............
jsp........가 프레임웍에 독립적으로 붙을 수 없습니다;;
java가..........핸들링을 하는거죠...
전 php도 하지만 나름 php괜찮은 언어입니다
오픈소스를 쓰느냐
보안을 고려한 자체 개발이냐의 차이가 아닐까 싶습니다
확장자 fake 종종 쓰죠..
그런데 php를 jsp로 하다니... 색다르네요.. 종종 써먹어야 겠습니다 :)
PHP 가 보안안이 약한게 아니라
PHP 가 워낙 시작하기가 쉬워서 보안에 신경안쓰시는 분들이 보안신경안쓰고 만들어서 보안에 약하다 판단됩ㄴ디ㅏ.
SQL인젝션, XSS 등은 조금만 관심을 기울이면 해결되는 문제라 생각합니다.
system 라이브러리를 쓰는 코드들은 보안에 취약한게 사실입니다.
자바는 jvm위에서만 구동돼죠.(시스템 해킹이 어렵게 됩니다. jvm 만 down 되니까)
단순히 구현 로직이나, 코드를 기준으로 한다면, 개발자의 문제라고 봅니다.
방어적 코드를 얼마나 잘 만들었냐의 차이죠.
똑똑똑..... 여긴 지금 진중하군.....
1) 보안에 취약하다. (오픈소스가 많아서 하는 소리같고)
2) 잠깐하면 배울 수 있다. (해봐라~! 함. 무슨 언어든지 중급이상가면 다 어렵다. 접근이 쉽다는것일뿐)
3) 간단하다. (컴파일러를 공부한넘이라면 아니 컴퓨터 전공자라면 심플 이즈 파워풀을 알 수 있을것이다. - 단 윈도우진영은 예외 )
누가 어떻게 구현 및 운용 하느냐에 따라 답변이 달라질 수 있겠네요.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

프로그램

+
제목 글쓴이 날짜 조회
14년 전 조회 1,161
14년 전 조회 1,168
14년 전 조회 870
14년 전 조회 1,162
14년 전 조회 737
14년 전 조회 758
14년 전 조회 1,581
14년 전 조회 1,338
14년 전 조회 1,150
14년 전 조회 1,196
14년 전 조회 1,923
14년 전 조회 1,501
14년 전 조회 612
14년 전 조회 1,490
14년 전 조회 1,267
14년 전 조회 1,349
14년 전 조회 834
14년 전 조회 868
14년 전 조회 822
14년 전 조회 809
14년 전 조회 1,432
14년 전 조회 771
14년 전 조회 1,069
14년 전 조회 1,342
14년 전 조회 1,396
14년 전 조회 1,083
14년 전 조회 1,848
14년 전 조회 1,167
14년 전 조회 1,816
14년 전 조회 1,360
14년 전 조회 1,013
14년 전 조회 3,091
14년 전 조회 1,537
14년 전 조회 1,013
14년 전 조회 865
14년 전 조회 1,547
14년 전 조회 962
14년 전 조회 766
14년 전 조회 688
14년 전 조회 1,939
14년 전 조회 601
14년 전 조회 842
14년 전 조회 1,602
14년 전 조회 942
14년 전 조회 925
14년 전 조회 1,472
14년 전 조회 1,148
14년 전 조회 1,218
14년 전 조회 1,011
14년 전 조회 2,312
14년 전 조회 1,097
14년 전 조회 827
14년 전 조회 1,001
14년 전 조회 760
14년 전 조회 790
14년 전 조회 616
14년 전 조회 828
14년 전 조회 1,204
14년 전 조회 1,434
14년 전 조회 907
14년 전 조회 1,054
14년 전 조회 910
14년 전 조회 1,088
14년 전 조회 1,362
14년 전 조회 1,134
14년 전 조회 1,331
14년 전 조회 1,110
14년 전 조회 1,039
14년 전 조회 1,064
14년 전 조회 1,015
14년 전 조회 1,539
14년 전 조회 1,490
14년 전 조회 1,299
14년 전 조회 1,396
14년 전 조회 1,634
14년 전 조회 629
14년 전 조회 1,079
14년 전 조회 448
14년 전 조회 917
14년 전 조회 1,395
14년 전 조회 846
14년 전 조회 897
14년 전 조회 1,123
14년 전 조회 1,341
14년 전 조회 1,186
14년 전 조회 878
14년 전 조회 1,173
14년 전 조회 1,399
14년 전 조회 1,351
14년 전 조회 909
14년 전 조회 2,092
14년 전 조회 427
14년 전 조회 1,056
14년 전 조회 902
14년 전 조회 744
14년 전 조회 1,233
14년 전 조회 1,669
14년 전 조회 1,024
14년 전 조회 805
14년 전 조회 810
🐛 버그신고