<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>빛을 담고 세상 넓히기 &#187; 보안</title>
	<atom:link href="http://fantazic.com/archives/tag/%eb%b3%b4%ec%95%88/feed" rel="self" type="application/rss+xml" />
	<link>http://fantazic.com</link>
	<description>마음의 빛으로 넓은 세상을 비추고 싶다.</description>
	<lastBuildDate>Sun, 27 Nov 2011 23:52:11 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>AJAX 개발자용 자료(3) &#8211; 보안</title>
		<link>http://fantazic.com/archives/18</link>
		<comments>http://fantazic.com/archives/18#comments</comments>
		<pubDate>Thu, 12 Jan 2006 02:18:06 +0000</pubDate>
		<dc:creator>따지크</dc:creator>
				<category><![CDATA[Software & Developer]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[보안]]></category>

		<guid isPermaLink="false">http://fantazic.com/?p=18</guid>
		<description><![CDATA[
Tweet

AJAX 보안 : AJAX에서 사용되는 XMLHttpRequest는 HTTP 방식과 동일하게 GET, POST 방식으로 요청을 보내고 문자열이나 XML 형태로 응답을 받기 때문에 HTTP traffic을 훔쳐봄으로써 정보가 노출될 수 있고, 이런 문제로 AJAX가 보안에 취약하다는 꼬리표를 달고 있다. https와 같은 암호화 통신은 지원되지 않지만 AJAX에 적용될 수 있는 보안기법을 정리해보았다.
AJAX에서 사용되는 보안은 기존 웹과 유사하다. 기본적으로 javascript에서와 같이 [...]]]></description>
			<content:encoded><![CDATA[<div style="display:block;margin-left: 10px; margin-bottom: 10px;">
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://fantazic.com/archives/18" data-text="AJAX 개발자용 자료(3) &#8211; 보안" data-count="horizontal" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
</div>
<p><strong>AJAX 보안</strong> : AJAX에서 사용되는 XMLHttpRequest는 HTTP 방식과 동일하게 GET, POST 방식으로 요청을 보내고 문자열이나 XML 형태로 응답을 받기 때문에 HTTP traffic을 훔쳐봄으로써 정보가 노출될 수 있고, 이런 문제로 AJAX가 보안에 취약하다는 꼬리표를 달고 있다. https와 같은 암호화 통신은 지원되지 않지만 AJAX에 적용될 수 있는 보안기법을 정리해보았다.</p>
<p>AJAX에서 사용되는 보안은 기존 웹과 유사하다. 기본적으로 javascript에서와 같이 <a href="http://www.xml.com/pub/a/2005/11/09/fixing-ajax-xmlhttprequest-considered-harmful.html">동일 도메인으로만  요청이 가능하도록 제한</a>이 되어 있고, cookie를 사용한 인증도 가능하다. 하지만 이런 방식이 데이타 자체의 안정성을 보장하지는 못하기 때문에 몇가지 다른 기법이 사용될 수 있다.</p>
<p>1. token 사용 : <a href="http://www.whirlycott.com/phil/2005/04/15/security-in-an-ajax-world/">UUID와 같은 토큰을 사용</a>함으로써 유효한 사용자의 요청에만 응답할 수 있다. session에 키를 저장한 후 동일서버로 일정한 시간안에 XMLHttpRequest 요청이 들어오는 경우만 응답을 하는 방식으로 유효성을 체크할 수 있다.</p>
<pre>&lt;head&gt;
&lt;script language="Javascript"&gt;
//Generated on the server and included as part of the dynamically generated HTML
var ajaxToken = "dff0194b-384f-43d3-0059-889247de5f88";	

//Make a request for some data and include the token
var req = new XMLHttpRequest();
req.setRequestHeader("AJAX-Token", ajaxToken);
. . ..
&lt;/script&gt;
&lt;/head&gt;</pre>
<p>2. 문자열 암호화 : XMLHttpReqeust는 문자열로 응답을 주기 때문에 문자열 자체를 암호화 해서 데이타를 전송할 수 있다. 하지만 암호화된 내용을 javascript 로 decription 하는 과정에서 key 또는 암호화 algorithm이 노출 될 위험이 있다. (<a href="http://weblogs.asp.net/mschwarz/archive/2005/08/30/424016.aspx">참고</a>) 이 문제를 해결하기 위해서는 AJAX 관련 js 파일을 매번 서버에서 새로 생성해 줌으로써 해킹의 위험성을 줄이는 방법이 있다.</p>
<p>위의 방법으로 어느정도 데이타를 보호할 수는 있지만 완벽한 보안이란 존재하지 않는다. 특히 AJAX로 데이타를 주고 받는 경우 사용자 인증 과정을 꼭 거쳐야 하고, 민감한 내용은 가급적 보안이 되는 통신을 사용하는 것이 좋으리라 생각된다.</p>
]]></content:encoded>
			<wfw:commentRss>http://fantazic.com/archives/18/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

