웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
CSS 및 JAVASCRIPT 소스 효과적으로 숨기기.
2007.06.16 22:07
지금까지 소스 숨기시려고 하신 분들, 보통 javascript로 return false 처리해서 막았습니다.
그러나 편집 -> 소스보기를 보거나 자바스크립트를 꺼버리면 무용지물이 되어버립니다..
따라서, 제가 고안한 방법!
PHP를 이용한 방법입니다.
스타일시트, style.css를 예제로 들어봅시다.
보통 style.css파일은 막지 못합니다. 따라서 이것을 php파일로 바꿔 코드를 숨길 수 있게 하는겁니다.
style.css파일이 다음과 같다고 합시다.
--------------------------------------------------------------------------------------------------
body {
font-size:11px;
font-family:Verdana, Arial, Helvetica, sans-serif;
}
form {
padding:0px;
margin:0px;
}
td{
padding:2px;
}
img {
border:0px none;
}
/* General Links */
a {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:active {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:visited {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:hover {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#DDDDDD;
text-decoration:underline;
}
/* General Horizontal Lines */
hr {height:1px;width:100%;color:#999999;background:#999999;border:0;}
--------------------------------------------------------------------------------------------------
그냥 보통 css파일입니다.. 따라서 아무것도 막지를 못하죠.
그러면 css파일을 style.php로 변경 한 후 다음과같이 해봅시다.
--------------------------------------------------------------------------------------------------
<?
header("Content-type: text/css");
$load_check = $_GET['load_check'];
$_load_check = sha1(date('d m A s i'));
if($load_check == $_load_check){
?>
body {
font-size:11px;
font-family:Verdana, Arial, Helvetica, sans-serif;
}
form {
padding:0px;
margin:0px;
}
td{
padding:2px;
}
img {
border:0px none;
}
/* General Links */
a {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:active {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:visited {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:hover {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#DDDDDD;
text-decoration:underline;
}
/* General Horizontal Lines */
hr {height:1px;width:100%;color:#999999;background:#999999;border:0;}
<?
}
else{
echo "/* 소스를 보시고 싶으시다면 연락해주세요.... admin@inera.net */";
}
?>
--------------------------------------------------------------------------------------------------
이렇게 변경 한 후 다음과 같이 css파일을 불러옵시다.
--------------------------------------------------------------------------------------------------
<link rel="stylesheet" href="css/style.php?load_check=<?=sha1(date('d m A s i'));?>" type="text/css" />
--------------------------------------------------------------------------------------------------
이렇게 하면 웹서버는 읽어와도 개인이 읽으려면 1초마다 바뀌는 해시값을 알아야 하기 때문에 보기가 힘들어집니다..
또한, 어떻게 암호화되었는지 모르면 거의 불가능하다고 보면 됩니다.
자바스크립트도 이와같이 처리하면 됩니다.
그러나 편집 -> 소스보기를 보거나 자바스크립트를 꺼버리면 무용지물이 되어버립니다..
따라서, 제가 고안한 방법!
PHP를 이용한 방법입니다.
스타일시트, style.css를 예제로 들어봅시다.
보통 style.css파일은 막지 못합니다. 따라서 이것을 php파일로 바꿔 코드를 숨길 수 있게 하는겁니다.
style.css파일이 다음과 같다고 합시다.
--------------------------------------------------------------------------------------------------
body {
font-size:11px;
font-family:Verdana, Arial, Helvetica, sans-serif;
}
form {
padding:0px;
margin:0px;
}
td{
padding:2px;
}
img {
border:0px none;
}
/* General Links */
a {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:active {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:visited {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:hover {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#DDDDDD;
text-decoration:underline;
}
/* General Horizontal Lines */
hr {height:1px;width:100%;color:#999999;background:#999999;border:0;}
--------------------------------------------------------------------------------------------------
그냥 보통 css파일입니다.. 따라서 아무것도 막지를 못하죠.
그러면 css파일을 style.php로 변경 한 후 다음과같이 해봅시다.
--------------------------------------------------------------------------------------------------
<?
header("Content-type: text/css");
$load_check = $_GET['load_check'];
$_load_check = sha1(date('d m A s i'));
if($load_check == $_load_check){
?>
body {
font-size:11px;
font-family:Verdana, Arial, Helvetica, sans-serif;
}
form {
padding:0px;
margin:0px;
}
td{
padding:2px;
}
img {
border:0px none;
}
/* General Links */
a {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:active {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:visited {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#777777;
text-decoration:none;
}
a:hover {
font-size:11px;
font-weight:normal;
font-family:Verdana,Tahoma,Arial,sans-serif;
color:#DDDDDD;
text-decoration:underline;
}
/* General Horizontal Lines */
hr {height:1px;width:100%;color:#999999;background:#999999;border:0;}
<?
}
else{
echo "/* 소스를 보시고 싶으시다면 연락해주세요.... admin@inera.net */";
}
?>
--------------------------------------------------------------------------------------------------
이렇게 변경 한 후 다음과 같이 css파일을 불러옵시다.
--------------------------------------------------------------------------------------------------
<link rel="stylesheet" href="css/style.php?load_check=<?=sha1(date('d m A s i'));?>" type="text/css" />
--------------------------------------------------------------------------------------------------
이렇게 하면 웹서버는 읽어와도 개인이 읽으려면 1초마다 바뀌는 해시값을 알아야 하기 때문에 보기가 힘들어집니다..
또한, 어떻게 암호화되었는지 모르면 거의 불가능하다고 보면 됩니다.
자바스크립트도 이와같이 처리하면 됩니다.