CSRF (Cross Site Request Forgery)
CI에서는 크로스 사이트 요청 위조에 대한 보호가 가능합니다.
CSRF 보호를 활성화하려면 application/config/config.php 를 열고 다음과 같이 설정합니다.

//$config['csrf_protection'] = false;
$config['csrf_protection'] = true;

 

활성화 한 후 view 페이지에서 form_helper 의 form_open() 함수를 사용하면, 폼의 CSRF 보호를위한 hidden 필드가 자동 삽입됩니다.
<?=form_open('form/update')?>
<input type="hidden" name="csrf_token_name" value="bdd350d889c5d8cf961a412107377844" />

 

 

csrf 보호를 활성화 시킨 상태에서 csrf_token_name ($config['csrf_token_name']) 을 함께 전송하지 않으면,
submit 버튼을 클릭할 경우 http 500 error code 를 발생시킵니다.

 

An Error Was Encountered
The action you have requested is not allowed.

 

 

 

Ajax 통신 역시 마찬가지 입니다.

var csrf = $('input[name=csrf_token_name]').val();

var test = $.ajax({
    type: "post",
    url: "form/ajax_auth",
    data : {csrf_token_name:csrf, ...

 

이런 식으로 csrf_token_name 을 함께 전달해야 500 에러를 피할 수 있습니다.

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret
지난 달 29일부터 4일간에 걸쳐 일본 요코하마에서 MS의 개발자를 위한 회의「테크+에드(Tech+Ed)2006」이 개최되었다.

윈도우 비스타나 오피스 2007의 등장을 앞두고 있어 수많은 세션이 다수의 참가자로 활기차 개발자의 주목을 끌었지만 그 중 하나는 MS가 현재 개발중인「아틀라스(Atlas)」라고 불리는 Ajax 애플리케이션 체제와 ASP.NET 2.0을 이용한 개발 수법에 관련된 일련의 세션이었다.

이 세션에서는 비쥬얼 스튜디오(Visual Studio) 상에서 각종의 컨트롤을 배치해 최소한의 코딩으로 풍부한 Ajax 애플리케이션을 구축하는 것이 시연되었다. 또 IE(인터넷 익스플로러)와 IIS ASP.NET의 편성 뿐만이 아니라 파이어폭스(Firefox)와 아파치(Apache) 및 PHP(하이퍼텍스트 생성 언어(HTML)에 포함되어 동작하는 스크립팅 언어)의 환경에서도 아틀라스를 이용할 수 있다는 것을 보여 호환성이 강조되었다.

아틀라스의 제공 의도나 현재의 개발 상황에 대해서 MS UI 프레임워크 앤 서비스 프로덕트 유닛 매니저(Microsoft UI Framework and Services Product Unit Manager) 샨쿠 니요기(Shanku Niyogi)에게 물었다. UI 프레임워크 앤 프로덕트 유닛에서는 아틀라스 외 ASP.NET나 윈도우 폼(Windows Forms), 윈도우 프레젠테이션 파운데이션(WPF,Windows Presentation Foundation)이라고 하는 클라이언트(client:서버 시스템과 연결하여 주된 작업이나 정보를 서버에게 요청하고 그 결과를 돌려받는 컴퓨터 시스템)를 위한 체제 전반을 통괄하고 있다.

이번 테크+에드에 있어서 아틀라스 관련 세션에서는 굳이 MS 이외의 플랫폼(브라우저 웹 서버 프로그램 엔진) 상에서의 동작도 시연했다는 점이 인상적이었다. MS가 Ajax 애플리케이션의 개발 체제를 크로스플랫폼(cross platform)에서 제공하는 이유는 무엇인가.

물론 우리는 윈도우의 클라이언트 서버 환경에 있어 최고인 유저 인터페이스 및 개발 환경의 경험(experience)을 제공하는 것이 중요하다고 생각했다. 그러나 현재 애플리케이션 개발의 세계는 단일 기술만으로 모든 것이 완결한다는 것이 안 되고 있다. 어떤 브라우저라도 어떤 서버 환경에서라도 활용할 수 있는 개방적인 애플리케이션이 요구되고 있다.

우리는 그러한 일을 요구했던 개발자 비즈니스의 의사결정자에 대해서 프로그래밍 모델의 상호 운용성과 유연성을 제공하는 것이 중요하다고 생각했다.

아틀라스는 Ajax를 이용한 애플리케이션 구축을 위한 라이브러리 세트이며 프레젠테이션 프로그래밍 모델의 일부이다. 개발자가 IE 파이어폭스 사파리(FireFox Safari)라는 다양한 브라우저나 각종 프로그래밍 엔진에 적용할 수 있도록 고려하여 그 제공이나 개발의 진행방식에서도 꽤 유연한 방법을 취했다.

물론 IIS ASP. NET를 개발자에게 사용하는 것으로 최고의 실행을 실현할 수 있도록 하는 것을 제일로 생각했지만 그 이외의 시스템 상에서 동작하는 애플리케이션에 대해서도 일관된 프로그래밍 모델을 제공하는 것이 필요하다고 생각했다.

그렇다면 개방적인 기술을 이용한 Ajax 애플리케이션을 개발함에 있어 굳이 MS의 아틀라스나 ASP. NET이라는 환경을 이용했을 때의 이점은 무엇인가.  

역시 개발 생산성의 양적 측면이다. MS 체제로는 단순한 Ajax의 라이브러리나 툴 킷을 제공할 뿐만 아니라 서로를 연계시키며 클라이언트 개발과 서버 개발의 양쪽 모두에 프로그래밍 최고의 결과를 제공했다.

ASP. NET에는 지극히 풍부한 프로그래밍 모델이 포함되어 있다. 아틀라스와 ASP. NET를 통합하는 것에 의해서 개발자는 비쥬얼 스튜디오를 사용해 컨트롤 업데이트 패널 익스텐더-(extender-)를 드래그 앤 드롭(drag and drop:포인터를 대상물에 위치시키고 마우스 버튼을 누른 채로 마우스를 움직여 간 다음 마우스 버튼을 놓는 일련의 동작)으로 배치해 자바스크립트(JavaScript)에만 의존하는 일 없이 애플리케이션을 풍부하게 할 수 있다.

- 아틀라스 체제로 개발하는 웹 애플리케이션에 대해서는 고객중심(client-centric)인 모델과 서버중심(server-centric)인 모델 양쪽 모두에 대응하는 것인데 이 2개 모델에 대한 대응은 아틀라스만의 독특한 것인가.

기본적으로 Ajax 애플리케이션에 대해서는 프레젠테이션과 비즈니스 논리의 양쪽 모두를 브라우저 측에 둔다. Ajax를 사용하는 것에 의해서 브라우저 측에서 보다 많은 처리를 할 수 있게 되는 것이다. 동시에 개발자는 다양한 웹 서버 프로그래밍 엔진으로의 개발에도 임하지 않으면 안 된다. 처리량을 브라우저측과 서버 측에 어떻게 할당하는가 하는 것은 상황에 따라 다르지만 아틀라스를 사용하면 개발자는 클라이언트와 서버에 대한 처리의 배분을 어떻게 하든 비싼 생산성을 얻을 수 있다.

커뮤니티로의 아틀라스의 개발 상황에 대해 들려달라. 현재 어느 정도의 개발자가 참가하여 실제로 어떠한 피드백이 있었나.

「www. asp. net」은 세계에서도 최대급의 웹 개발자 커뮤니티이다. 아틀라스에 관해서는 ASP. NET의 개발에 관련된 사람들을 수용하고 Ajax에 관련된 사람들도 넓게 수용하려 했다.

좋은 피드백도 많았다. 예를 들면 초기 아틀라스의 디자인에 대해서는 ‘너무 고객중심이다’ 라는 의견이 많았지만 그러한 피드백을 바탕으로 서버중심 모델로의 대응도 진행해 왔다.

올해 연말에 정식판을 출시할 예정인데 현재의 개발 상황을 가르쳐 달라.  

최종판의 출시에 대해서 구체적인 일자는 결정되지 않았다. 현재 정기적으로 커뮤니티 전용의 ‘기능 미리보기’판을 올리고 있어 연말에는 RC(Release Candidate:대규모 소프트웨어에 대해서 다양한 환경에서의 시험을 위해 베타 버전과 제품 버전 사이의 과정에서 추가로 수행되는 버전)판을 낼 예정이다. 이 RC판의 피드백을 기반으로 해 최종적인 출시를 하고 싶다고 생각했다. 그와 더불어 일본어판의 출시도 진행했다.

웹의 진화 혁신(innovation)의 속도는 대단히 빠르고 그 규모도 커졌다. 웹 개발자는 그 혁신을 추진해 가는 입장에 있다고 해도 과언이 아니다. MS에서는 아틀라스나 ASP. NET를 제공하는 것으로 개발자가 즐기면서 생산성을 올리는 것을 돕고 싶다고 했다.


♣ 자료출처: CNET Japan

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret
인터랙티브 웹 사이트가 인기를 끌자 소프트웨어 기업간의 경쟁이 뜨거워지고 있다. 각 사 모두 현재 독자적인 개발툴 킷을 시장에 내놓기 시작했다.

썬마이크로시스템즈(Sun Microsystems)도 이러한 기업 중의 하나이다. 썬은 AJAX 스타일의 개발에 고속화를 약속하는 웹 애플리케이션 개발툴 「자바 스튜디오 크리에이터(Java Studio Creator)2」를 발표했다. IBM도 이 경쟁에 동참하기 위해 다음 주에는 AJAX용 툴의 판매 및 AJAX 관련의 개발자 커뮤니티를 구축할 계획을 발표할 것으로 보인다.

AJAX라는 말은 2005년 2월에 JavaScript, XML등의 웹 기술의 조합을 표현하기 위해서 만들어졌다. 많은 개발자들이 웹 사이트에 쌍방향성을 추가하면서 초반의 브라우저의 제한을 탈피하기 위해서 이러한 그룹화 된 툴을 이용하고 있다.

「통합 개발 환경(IDE)」를 제공하는 대기업 공급 업자도 이제는 AJAX의 유행에 주목하고 있다.

"이클립스(Eclipse)를 포함한 모든 주요한 IDE가 AJAX 개발을 지원하기 시작하는 것도 시간의 문제일 것이다"고 버튼 그룹(Burton Group)의 애널리스트인 리차드 먼슨 해펠(Richard Monson-Haefel)은 말한다.

2005년에 Gmail이나 MS의 버추얼 어스(Virtual Earth)와 같은 한 많은 유명한 웹 서비스의 프론트엔드에 AJAX가 이용되었다. 이 기술을 사용하면 아이템을 드래그&드롭 해 다른 웹 사이트로부터 정보를 가져다 넣어 「매쉬 업」을 만들 수 있다.

이러한 움직임에 웹상에서 워드프로세서 기능이나 TO DO리스트 등의 애플리케이션을 제공하기 위해서 AJAX를 이용하는 몇 회사의 소규모 기업도 생겨났다.

AJAX의 인기는 대기업 소프트웨어 업계에도 영향을 미치고 있다. MS는 신속하게 AJAX의 기세를 타고 있다. MS는 2005년, AJAX 툴 킷의 「아틀라스(Atlas)」(코드명) 개발할 계획을 발표했다. 아틀라스는 주력 상품 「비주얼 스튜디오」툴과 연동된다. 아틀라스의 초기 버전은 2005년 12월에 공개되었다.

IBM도 동참했다. 곧 AJAX 전략을 펼칠 IBM은 지난 주, 「AJAX Toolkit Framework」프로젝트를 이클립스에 포함하는 것을 고려하도록 제안했다. 툴 벤더 등 업계로부터의 지원을 폭넓게 얻고 있는 이 재단은 AJAX 툴 구축을 위한 체제를 작성하는 것을 목표로 하고 있다. 이 제안은 BEA시스템즈나 오라클, 야후, 리눅스 배포업체인 레드햇, PHP 툴 벤더인 젠드 테크놀로지(Zend Technologies) 그 외에 기업의 지지를 얻고 있다.

이 밖에도 AJAX 개발에 힘을 쓰는 업체는 많다. 몬슨 해펠에 의하면 AJAX 개발자의 생산성 향상을 목표로 하는 오픈 소스 프로젝트도 40건 정도 있다고 한다.

대기업 벤더가 AJAX에 주력하는 것은 웹 개발자나 그들이 구축하는 웹 사이트에 있어서 유익하다고 몬슨 해펠은 말한다. 그 이유로서 AJAX 는 툴이 부족하다고 지적했다. 18개월 정도되면 프로그래머는 대부분의 AJAX 스타일의 개발 툴을 지원 받을 수 있을 것이라고 말한다.

「리치인」인터넷 애플리케이션

애널리스트나 업계 임원들에 의하면 AJAX에 대한 관심이 높아지고 있는 이유의 하나는 웹 유저가 보다 인터랙티브인 룩&필을 간절히 바라고 있기 때문이라고 한다.

이른바 「리치인」인터넷 애플리케이션을 구축하기 위한 방법은 이미 다수 존재한다. 이러한 애플리케이션은 웹 브라우저를 사용해 윈도우나 매킨토시의 네이티브 애플리케이션의 룩&필을 재현하려고 하는 것이다. 어도비 시스템즈의 플래시, MS의 웹 개발툴, 자바 애플릿 등을 예로 들 수 있다.

MS의 개발자용 툴 부문 담당 그룹 프로덕트 매니저 포레스트 키(Forrest Key)에 의하면 웹 개발을 둘러싼 움직임이 다시 활발해졌다고 한다. 그에 의하면 일상 생활에 크게 영향을 주는 웹의 유저 익스피리언스(experience)를 향상시키는 방법에 기업이 투자하게 되었다고 한다.

키는 또, 지난 번 MS의 버추얼 어스에 휴대 전화를 이용해 레스토랑의 장소를 찾은 경험에 대해 말했다.

“이것이 실현된 것은 새로운 인프라 기술이 갑자기 나타났기 때문이 아니다. 유저빌러티를 향상시키는 기술이 성공 하고 있기 때문이다”고 한다.

최근의 대부분의 브라우저가 웹 표준을 지키는 것도 AJAX의 대두가 한 몫하고 있다. 같은 기술이 채용된 브라우저면 같은 애플리케이션을 실행할 수 있기 때문이다.

IBM의 제너럴 매니저(Rational Software 개발툴 사업부) 대니 사베(Danny Sabbah)는 “AJAX의 대단함은 그 신기함에 있는 것이 아니다. 주목 해야 할 것은 그 도입 모델이다. 브라우저는 이것을 이용하기 위한 기능을 갖추고 있어 어디에라도 배포할 수 있다”고 한다.
사베에 의하면 IBM에서는 AJAX 스타일의 웹 애플리케이션을 기술하는 프로세스를 간략화하려고, 복수의 IDE용 애드 온(add-on)를 구축중이라고 한다. IBM은 이것을 웹/웹 포털 개발툴에 포함시키려 하고 있다.

버튼 그룹의 몬슨 해펠에 의하면 자바스크립트 등의 각종 웹 기술을 사용하고 있던 개발자나 디자이너는 몇 년 전부터 보다 전문적인 툴을 찾고 있다고 한다.

몬슨 해펠에 의하면 AJAX의 이용이 확대되면 프론트엔드의 디자이너가 아니고 프로그래머를 만족시키는 개발툴 벤더가 AJAX 툴의 대기업 공급자가 될 가능성이 높다고 한다.


♣ 자료출처 : O'Reilly Network

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

Web 2.0 과 Ajax

Daily/Prog 2006. 7. 23. 17:47



명함이 바뀌었다.
지금까지는 디자이너였지만, 이제야 내가 원하던 개발자가 됐다.

허접함에도 불구하고 전혀 새로운 세상이 두렵지 않은 이유는,
든든한 싸부님이 생겼기 때문이다.

처음 싸부님을 만났을 때 나에게 가장 먼저 물어본 것은 웹 기술의 최신동향..

"WEB 2.0 과 Ajax 를 아시나요?"


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  2개가 달렸습니다.
  1. AJAX는 알겠지만, AZAX는 뭔가요?!
secret