웹마스터 팁
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초마다 바뀌는 해시값을 알아야 하기 때문에 보기가 힘들어집니다..
또한, 어떻게 암호화되었는지 모르면 거의 불가능하다고 보면 됩니다.
자바스크립트도 이와같이 처리하면 됩니다.
댓글 9
-
류현留賢
2007.06.18 12:39
리퍼러 비교해서 exit 먹이는 편이... -
LaughLikeCrazy
2007.06.18 17:07
ㄴ referer는 브라우저에서 넘기는거라 조작할 수 있어서 [...] -
카디
2007.06.24 14:56
효과적으로 외부접근은 차단할 수 있으나
WPE, 이더리얼등의 도구로 패킷스니핑을 하면 그대로 다 나오지 않나요.. -_-; -
pupstar
2007.06.25 17:12
자바스크립트나 css는 사용자의 눈에 보이거나 안보이는것에 상관없이 클라이언트에서 처리되는 것이니 간단한 클릭으로 쉽게 볼수는 없도록은 할 수 있으나 막는 것 자체는 불가능합니다. -
LaughLikeCrazy
2007.06.25 23:12
(엄청난 테클이 ㄷㄷㄷ) 뭐 그래도 볼 수 있을 정도면 CSS난 Javascript소스를 퍼갈 이유도 없겠죠 (.....) -
김낙향
2007.08.14 01:56
php파일로 css, js파일로 써도 된다는것은 알고있었는데 이렇게 활용될수도 있겠군요.
한가지 질문^^
자바스크립트파일(js) 헤더값은
header("Content-type: text/javascript");
이렇게 하면 되나요? ^^??? -
ukisdakimil
2007.08.26 12:56
후킹하면 다 나옵니다 ^^;;
dom inspector 이거 하나로도 다 후킹하는데여? ㅋㅋㅋㅋ
막아봐야 쓸데없는 짓입니다. -
번구개름
2015.08.07 15:27
css // javascript 저 방식으로 보는 방법
1. 브라우저 개발자 도구 (f12) 실행
2. 네트워크 항목 클릭
3. 새로고침 (f5)
4. 해당 스크립트파일 클릭
크롬에서 해봤고 잘 보이네요 ... 좋아했다가 ㅋㅋㅋㅋ 실망조금 했슴돠 ㅋㅋㅋㅋ
-
NOVCUBE
2015.08.08 23:50
네이버는 잘 막긴 하더라고요. 어떻게 하는지는 모르겠지만