Media Log

php 버전 4.0 이상부터 지원된다.
쌍따옴표나 홑따옴표를 사용하지 않고 문자를 통째로 묶어서 변수에 저장 할때 사용한다.
사용법은 <<< EOD를 선언해주고 EOD;로 닫아준다.
이 안에서는 쌍따옴표든 뭐든 그냥 써주면 된다. php 변수도 적용된다.


EOD는 EndOfDocument라는 의미의 축약형 심볼.

 

<?php $str =
<<<EOD Example of string spanning multiple lines using heredoc syntax. EOD; /* 변수도 사용된 좀더 복잡한 예제. */ class foo { var $foo; var $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); } } $foo = new foo(); $name = 'MyName'; echo <<<EOT My name is "$name". I am printing some $foo->foo. Now, I am printing some {$foo->bar[1]}. This should print a capital 'A': \x41 EOT; ?>

*** 주의할점 ***
<<<EOD or EOT 뒤에 절대로 아무 글자도 와서는 안된다. 스페이스바도안된다.
끝날때 EOD or EOT뒤에도 절대오 어떤 글자도 와서는 안된다.

뛰어쓰기라도 들어가면 바로 에러구문이 뜬다. 
회원 인증 로그인 시스템 보안 


php.ini 에서 register_globals=off 하시면 , 일단 보안이 되구요. 
세션을 사용시 $_SESSION 이나 $HTTP_SESSION_VARS[] 형태로 사용하여야 합니다. 

왼쪽에 PHP4.1.1 아래 관련 게시물 주욱 보시면 됩니당 

글구 회원 비번은 md5() 로 암호화 하시구요. 쿠키는 사용하지 마세요. 
회원이 비번을 잊어 버렸을 경우는 회원 email 주소로 새로운 비번을 쏴주시구요. 

세션의 경우 회원id 세션과 회원 비번 md5 암호화 한 세션 , 2개 로 비교 하세요. 
회원 레벨..준회원..정회원..관리자 등이 있을 경우는 3개 로 비교 하시구요. 
1개 로만 절대로 비교 하시지 말구요 ! 

회원 정보 수정 시 form 에서 맨아래 무조건 회원 비번을 1번더 묻게 하시구요. ^^ 

register_globals=off  하셨나요? 
$_SESSION 은 PHP4.1.0 이상 입니다. 

세션의 경우는 /tmp 폴더에 저장 하시지 마세요. php.ini 에서 세션저장 장소를 바꾸세요.
session지시자 아래 있슴다. 
/tmp 는 너무 알려 져서 좋지 않습니다. ! 

register_globals=off 를 하지 않더라도..여러가지로 보안을 취할 수 있습니다. 
$REQUEST_METHOD 를 체크 하는 방법 하구요. 
$HTTP_REFERER 를 체크 하는 방법 하구요. 
PHP강좌 게시판에서 http 나 request 로 검색 하시구요. 왼쪽에 PHP 보안 메뉴 아래 쪽에 보세용 ^^ 

세션 생성시 $userid 를 생성 하고, $userpass=md5($userpass); 로 생성 해서, 
2개 값이 있는지 비교 하구요.. isset() 등으로 비교 하시는 것이 좋구요. 

$userpass 값은 32 자 인지 확인 하시면 됩니다. md5() 로 해슁 하면 32자가 됩니당. 

if((session_is_registered(username)) && (session_is_registered(user_id))) 
session_is_registered() 를 사용하시구요.. 

$pw 도 암호화 하세용..!!! 
비교는 

if($pw==md5($pw넘어온값) && isset($pw넘어온값)) 
이런식으로 체크 하시구용...^^ 

좀더 고심해 보시고 응용해보세요 ^^ 


$tpass=md5("pw008"); 
if(($id == "id007") && (md5($pw) == $tpass) && isset($pw) && isset($id)){ 

이런 식으로 ^^ 







★ zend encode 를 사용하지 않고 PHP 소스 안보이게 하는 방법 ?


PHP는 인터프리터 언어 입니다. 컴파일하지 않기 때문에 소스가보일 수 가 있습니다. 
물론 어렵겟죠...일반적으로 보안이 되어 있기 때문에 보이지는 않습니다. 

그렇다면 ,PHP 소스를 안보이게 하거나 보안을 하게 하는 방법은 ? 
컴파일 하지 않고 , PHP 소스 보안을 유지 하는 방법은 ? 

들여 쓰기 를 사용하지 않고, 변수명도 어렵게 하는 것 입니다. 
남들이 소스를 보기에 짜증나게 하는 것이죠....ㅋㅋㅋ 

머..이딴 소스를 만들었나 ? 싶을 정도로 짜증나게 만들면 보지 않을 검당...ㅋㅋㅋ 

PHPBuilder.com 읽다가 약간 번역 한 것임당...ㅌㅌㅌ 

http://www.phpbuilder.com/forum/read.php3?num=2&id=139250&thread=139219 


또는 http://pobs.mywalhalla.net 
를 사용하세요. 소스를 아래 처럼 만들어 버립니다. 우왕...어지러버요....해킹 불가 !!!  ㅋㅋㅋ 
읽어 보니...인간이 읽기에 힘든 편집으로 만든다 라고 적었네요... 

<?php 

include("pobs-ini.inc"); 
echo 
"<HTML><HEAD><TITLE>POBS - A PHP Obfuscator</TITLE><STYLE TYPE='text/css'>";echo "td { 
font- 
family: 
Verdana, sans serif;font-size:"
.$V24b02965."pt;  vertical-align: 
top; }"
;echo "</STYLE></HEAD><BODY>"
define("C00529ab2""<TD VALIGN=TOP>");define("C4d89b09c""<TD BGCOLOR=#6699CC 
VALIGN=TOP>"
);define 
("C5481f31d""<TD BGCOLOR=#E6E6E6 VALIGN=TOP>");define("C9c3b8e37""<TR>");define 
("Cd742068d""</TR>");define("Cdabce349""</TD>");define("C6faee0d5""</TABLE>"); 
if (
$PAF85580fcb(); 
$V9429cf94=time(); 
$Vf797b56c=0;$V048f0047=0
$Vbc961c59=array();$Vb787292f=array();$V4cb73b6b=array();$Vae809e1a=array(); 
$V4a949e17=array();$Va7254761=array();$Vd74f666d=array(); 
if (
$PAF23da1c4c();else Fb72cca71(); 

?> 




★ 파일 업로드 보안 문제 - 7 가지 모두 체크 !!!


1.php,inc,html,htm,phtml,php3 등의 확장자는 절대로 올릴 수 없게 한다 ! 
.txt 도 못올리게 합니다. .txt 를 사용해서 쿠키를 훔칠수도 있슴다. 


2.업로드 디렉토리는 무조건 htdocs 아래 말고 다른 디렉토리 에 올린다 !! 
/updir 이나 c:\updir 등 htdocs 와 관련이 없는 디렉토리에 올리게 한다. !! 

3.CP명령을 사용시에 exec(cp $file , 처럼 exec() 를 절대로 사용하지 말아야 한다. 
기냥 cp()만을 사용하라 !!! 
www.php.net/cp 

4.REQUEST_METHOD!="POST" 로 체크 해서 올리기 
POST 가 아닐 경우 올리지 못하게 !!! 
form 에서 method=get 으로 절대 절대 하지 마세요 !!! 
php.ini 에서 register_globals=off 라면 
$HTTP_SERVER_VARS['REQUEST_METHOD'] 로 출력 해야 합니당..ㅋㅋㅋ 


<?php 

if ($submit) { 
    if (
$REQUEST_METHOD == 'POST') { 
        
// 정상 실행 
    

    else { 
         echo 
'get 값은 받지 않아요 !!'
    } 
else { 
    echo 
'훔....잘못된 입력 !!!'


?> 

5.파일명이 pass 나 shadow 나 리눅스 시스템 파일일 경우는 올리지 못하게 하기 위해 
파일명 중에 pass 나 shadow 등이 있을 경우 올리지 못하게 !!! 
그러니까 koreapass.zip 파일 같은 것도 올라가지 않겟죠 ^^ 
그래도 보안을 위해서라면 ^^ /etc/passwd 파일(리눅스 파일)의 업로딩을 방지 합니다.

그러니까 upload.php 파일을 이용하여 주소표시줄에서 
upload.php?file_name=/etc/passwd&file_type=text&file_size=30 
등으로 해서 해킹할 시스템의 passwd 파일을 자료실에 올리고 다운 받을 수 있다고 합니다. 
그래서 취한 조치 입니다. 

6.또는 file_exists($file_name) 를 사용하여 체크 합니다. 로컬시스템에 파일이 있으면 절대 못올리게 
합니다 ^^ /etc/passwd 파일의 업로딩을 방지 합니다. 




7. PHP 4.1.2 최신 버전 말고는 모두 파일 업로드 버그가 존재 한다고 합니다.

PHP4.1.2 버젼 설치 하세용 !!!





★ HTML 태그를 막기  



htmlspecialchars() 를 사용하시지 말고, str_replace 로 직접 변환하세요 !!! 

<?php 

function cleanup($copy

    
$copy=trim($copy); 
    
$copy=htmlspecialchars($copyENT_QUOTES); 
    
$copy=eregi_replace ("%""&#37;"$copy); 
    
$copy=eregi_replace ("<""&lt;"$copy); 
    
$copy=eregi_replace (">""&gt;"$copy); 
    
$copy=eregi_replace ("&amp;""&"$copy); 
    
$copy=nl2br($copy); 
    
$copy=StripSlashes($copy); 
    return(
$copy); 

?> 

<scripts> 도 당근 막아야 하구요 
<table> 도 당근 막아야 합니다. 






★ HTML태그와 자바스크립트 사용 못하게 한다면?


HTML과 자바스크립은 뚫립니다. 쿠키 까지 알아 낼 수 도 있습니다. 
콤포넌트를 사용한 방식이 라도 안됩니다. 
hotmail.com 에서 장난 쳐서 보낼 수 도 있습니다. 

무조건 태그는 막는것이 좋습니다. 
그러나 대부분의 사용자는 모르고 있죠. 글서 보통 허용하는 것이 일반적 입니다. 
그러나 허용을 하더라도 <script> 등의 소스나 <a> 태그 외에 <a onmouse~> 등의 태그는 안됩니다. 
무자게 생각할 것이 많고 적용할 소스가 많습니다. 

아싸리 막아 버리세요. 

일단 막고 등으로 사용하게 하는 것이 좋습니당. !!! 






★ 반드시 회원의 비밀번호는 md5() 나 mhash 유틸리티의 암호화 알고리즘을 사용하여 저장 하세요 ^^


그리고 회원 정보 수정이나 중요사항 변경시, 쇼핑몰 결재시에는 반드시 
회원의 비밀번호를 한번더 물어 보고, 디비와 비교해서 통과 시키 세요 !! 

◆◇ 회원 정보 수정시 , 수정할 것들 맨아래 에 비밀번호 입력란을 만들면 됩니다 ^^ 

회원 비밀번호 찾기의 경우 , md5() 를 사용하면 바로 웹에서 찾을 수 없습니다. 
회원이 비밀번호를 분식했을 경우, 사용자 메일로 새로운 비번을 만들어서 보내는 알고리즘을 
사용하세요 !! 

주민등록 번호의 경우 수정시 라도 보여 주지 않는 것이 좋습니다. 
input text 박스만 보여 주고 옆에  731111-******* 이런식으로 명시 하시는 것이 좋습니다. 










★ *.inc 파일로 저장 하지 마십시오.


바로 브라우져에서 보일 수 있으며 간단한작동 만으로 데이터베이스 패스를 
볼 수 있습니다. 

파일명을 저장 하시려거든 , *.inc.php 로 하세요. 

물론 Apache 에서 Addtype 에서 .inc 를 추가 하면 됩니당..^^ 






★phpinfo() 를 숨겨라...      

   
phpinfo() 의 경우 시스템의 구성 상황을 비교적 쉽게 해커에게 알린다고 합니다. 
물론 phpinfo() 때문에 해킹 당하지는 않겟지만.. 해킹에 도움이 된다는 것이죵... ^^ 

되도록 이면 

test.php 에서 

<?php 
     phpinfo
(); 
?> 

를 사용하시고 바로 지워 주세요... 
검색엔진에서 검색하면 많은 phpinfo() 를 볼 수 있거든요... 


http://www.google.com/search?q=phpinfo 

다 설치 하고 test 를 했다면 지우세용 ^^ 




★PHP오류를 적에게 알리지 말라!      

   
PHP오류가 날 경우 역쉬 경로가 적(크래커) 에게 발견이 됩니다. 
오류를 아싸리 안보여 지게 설정 하는 것도 좋은 방법 입니다. 

php.ini 에서 설정 이 있는뎅...php.ini 찾아 봐야 함당.. 
지금 날밤 새서리...담에 찾죠 
찾아 보셍 ^^ 

  



★ 쿠키 보다는 세션을 사용하세요 !!!


★★ 세션 보다는 Auth 인증을 사용하세요 !!! 

쿠키는 해킹이 무자게 쉽다고 합니다. 
세션을 되도록이면 사용하세요 !!! 
세션을 사용하시되, session_set_save_handler() 를 사용하여 세션을 md5() 로 암호화 하고 
저장 하세요 ^^ 

세션을 사용할때 /tmp 폴더에 저장 하지 말라고 합니다 !!! 
반드쉬 mysql 에 저장 하세요 !!! 


Auth 인증  << 세션 <<<<<< 쿠키 
Auth 인증 이 가장 강력한 보안 체계 입니다. !!! 
http://www.zend.com/zend/tut/authentication.php 
http://download.php.net/manual/en/features.http-auth.php 

auth 강좌는 PHP강좌 게시판에서 auth 로 검색하세용 !! 






★ 세션 쿠키값 - 보안 로그인 시스템 ◆◆


$userid 
형태로 사용하시지 말고 

세션일 경우 _SESSION 이나 (PHP4.1.0) , HTTP_SESSION_VARS[] 를 사용하세요. 
쿠키도 마찬가지 , PHP4.1.0 에서 약간 바뀌었으니 PHP강좌 게시판 검색하세용.!! php 로 !! 


if((session_is_registered(username)) && (session_is_registered(user_id))) 

if (!isset($memberid) && !isset($PHPSESSID)){ 
     
session_is_registered() 나 isset() 는 반드쉬 사용해야 합니다. 
<?php 
function check_session() { 
    
session_start(); 

    if (
session_is_registered(user_id)) { 
        return 
TRUE
    } else { 
        
header("Location: login.php"); 
        exit; 
    } 

?> 

그리고 if 문에서 비교는 반드쉬 1개 이상으로 비교 하세용 !!! 

session_start(); 

if(!isset($sid) || empty($sid)) // $sid 는 세션 값.. 

<?php 
// 반드시 register global=off 로 설정 하시고 아래 처럼 하세요. !! 
// PHP4.1.0 이상 부터는 $_SESSION[type] 입니다. 
// ◆◇◆◇◆◇ 세션변수를 $session_name 등으로 절대루 사용하지 마세용 !!!◆◇◆◇◆◇ 
session_start(); 

if(!isset(
$HTTP_SESSION_VARS[type])) 

  
header("Location: log-in.php"); 

?> 









★쇼핑몰이나 e-커머스 사이트는 반드시 SSL 를 사용하라.


apache 리눅스나 유닉스 경우는 openSSL 를 사용할 수 있습니다. 
윈도우는 잘 모르겠습니다. 
openSSL 를 반드시 사용하세요 ^^ 
http://www.openssl.org 

웹에서 https// 로 시작 하는 것들이 SSL 입니다. 
인증 사이트 가시면 보실 수 있을 것 입니다.  msn 만 해도..메일 확인 하려 하면.. 
보안을 해제 하려고 합니다..그러면서 https 로 가죠..^^ 






★ PHP에서 mysql 연결시 계정을 만들어 사용하라 !!!


config.inc.php 

<?php 
  $db_user 
"root"
  
$db_pass "xxxx";  // root 비밀번호 
?> 


PHP파일에서 config 파일에서 종종 root 로 mysql 에 연결 하는 경우가 있다. 
되도록이면 root 는 사용하지 말아야 한다. 

root 로 사용할 경우 , PHP 소스가 보일 경우 데이터베이스는 모두 지워진 것이나 다름이 없기 때문이당.. 
root 가 아닌 특정 사용자 계정을 만들고 권한을 부여 해라 !! 

root 의 비번은 어느곳이든 지 간에 쓰지 않는 것이 최상이다 !!! 
소스 자료실에 mysql 계정 설정 권한 설정 하기 파일이 존재 한다. doc 파일임.. 
그것을 보고 반드쉬 임의 계정을 만들어서 사용하라 !!  디비가 지워지고 싶지 않으면 !!! 


현명한 config.inc.php 

<?php 
  $db_user 
"tood"
  
$db_pass "xxxx";  // tood 비밀번호 - 임의 사용자 비번 
?> 

또는 

<?php 
  $db_user 
"toodtood"
  
$db_pass decode_passwd("sddsdsds21912012dslsdl");  // tood 비밀번호 - 임의 사용자 비번 
?> 

decode_passwd() 란 함수를 만들어 PHP모듈에 탑재하는 것임당.. 
그러면 좀더 낫지 않을 까요 ? ㅋㅋㅋ 
PHP 모듈에 탑재하는 방법은 www.php.net 을 보세용..저두 해보지 않아서 ^^ 









★반드쉬 알아야 할 PHP보안 함수 - 쓰기전에 반드쉬 보안을 생각해야 할 함수 12 가지 !


www.php.net/md5 
www.php.net/crypt 
www.php.net/base64_encode 
www.php.net/base64_decode 
www.php.net/session_is_registered 
www.php.net/isset 

system() 
exec() 
"backticks" 
passhru() 
opendir() 
escapeshellcmd() 

반드쉬 숙지 하세용 !! 






★ safe mode 를 사용하라


php.ini 에 보면 safe mode 설정이 있습니다. 

safe_mode 를 On 하고 ,소유자가 nobody 인지 다른 사용자가 되는지 테스트 해보세요 ^^ 
계정이 여러개 일때 좋습니다. 

php.ini 중에서 일부 

; Safe Mode 

safe_mode = Off 

safe_mode_exec_dir = 







PHP소스 안보이게 


(1) avoid using .inc files; use .php files like for normal script 
.inc 보다는 .inc.php 로 저장 하기 ! 
httpd.conf 
<Files ~ "\.inc$"> 
    Order allow,deny 
    Deny from all 
</Files> 


(2) turn Indexes directive to off by default per website 
httpd.conf 에서 Indexes 지우기 -> index.html 파일이 없을 경우 디렉토리 아래 죄다 보임 ! 

(3) make directories 711 instead of 755 
(4) develop an organized php scripts structure outside DocumentRoot and 
place the files that you will eventually include in an "include" 
sudirectory within that structure 
(5) review changes all the time, check your weblogs and be vigillent :-) 






PHP 에러 출력 안하기  [combel 님 제공] 


간단합니다. 
그렇지만 보안을 위해서는 필수겠죠. 
php.ini의 Error_Handling 부분에서 display_errors = Off 로 설정해 주시면 됩니다. 
에러가 나더라도 빈 화면만 뿌려주죠 ^^; 
php 4.1.x 버전에서는 보안을 위해서 off 시키는 것을 추천하고 있습니다. 

투덜이 comment -> 오류가 보여지면, apache 디렉토리 위치 나 htdocs 디렉토리 위치가 보이게 됩니다. 




HTML 일부만 허용 하기와 보안


Example 1. strip_tags() example 
$string = strip_tags($string, '<a><b><i><img>'); 

$string 에서 <a><b><i><img> 태그만 허용 하고 나머지는 막는 것입니다. 
htmlspecialchars() 보다 유용하네요. 

그런데 문제가 존재 합니다.<b> 태그를 허용 할 경우... 
<b onmouseover="for(i=0;i<50;i++)window.open('www.porn.com');">tood.net 미오!</b> 

이런 문장을 쓸 경우 문제가 됩니다..ㅋㅋㅋ 
만약  i 를 5000000 까지 한다면... 헐.... 

<b onmouseover="for(i=0;i<500000000;i++)window.open('www.porn.com');">tood.net미오!</b> 
글구 <a> 태그를 허용해도 <a href="" target=""> target 는 허용이 되지 않습니다..ㅋㅋㅋ 짭.. 




location.replace 인증 부분 - 초짜 님 제공(jcorn***@hanmail.net) 


음 넘 초보적인 방법이지만 그래두 함 적어보겠습니다. 
만약 게시판에 관리자 모드가 있다면...그 곳많은 보안이 상당히 많이 필요하겠지염. 

보안을 위해서 이런 저런 방법을 많이 사용하실테구염. 
사용하시는 방법에 아주 간단한 자바스크립트를 추가 하신다면 좋을 듯 합니다. 

function goto_page($url) { 
    echo "<script> location.replace(".$url."); </script>"; 


보안이 조금이나마 필요한 부분에선 이 함수를 사용해서 이동했던 페이지들을 히스토리에서 삭제를 하는 것이지 
요... 

가끔 어떤 곳에서 로그아웃을 했더라구 뒤로가기 버튼을 클릭하면 이전 페이지가 나오는 것을 많이 목격하고 위 
에 함수를 많이 사용하게 되었습니다. 

위 처럼 하시면 로그 아웃 후에 뒤로가기 버튼을 눌러두 이전 페이지가 아닌 잴 처음 화면으로 가게 되지염. 
모두 아시는 것을 올려서 죄송하구염...ㅡㅡ; 그래두 모르는 분들이 계실것 같아서...좋은 뜻으로 올렸씁니 
다..^^ 
그럼 모든 분들 좋은 하루 되시길....빌며 이만.... 






스팸 봇이 여러분의 email주소를 


스팸 봇이란 넘이 있어서 여러분들의 email 주소를 긁어 갑니다. 
그러니까 게시판에서 <a href=mailto: ~ > mailto 부분의 email 주소를 긁어 갑니다. 

거기에 사용되는 email 주소는 base64 나 md5() 로 암호화 하세요 ^^ 

◈보안◈ 스팸메일 추출기 or 게시판 자동 로봇       
http://www.tood.net/tood/toodboard/toodread.php?board=tootech&tcode=1005 





PHP 확장자 숨기기 


PHP 확장자는 마음대로 변경 하여 사용하 실 수 있습니다. 

아래는 윈도우에서 httpd.conf 파일 입니다. 물론 리눅스도 AddType 부분은 동일 합니다. 
LoadModule php4_module c:/php/sapi/php4apache.dll 
AddType application/x-httpd-php .tood .tgp .cal .html .htm .include 

위에 처럼 설정 하면 
.tood .tgp .cal .html .htm .include 파일에서 PHP 를 사용할 수 있습니다. 
확장자만 가지고는 이 사이트가 PHP 기반인지 알 수 없습니다. 
물론 알 수 있는 방법은 많죠..그러나 단지 접속 해 보고는 알 수 없습니다. 

index.tgp 파일...이상하게 생각 할것 입니다..이게 먼 확장자 이지?  ^^ 





세션 보안 최적화  !trans_id  


PHP counfigure 시에 세션 보안 방법 입니다. trans_id 옵션 보시면 됩니다. 
재설치 하셔야 합니다. 

http://www.tood.net/tood/toodboard/toodread.php?board=tootech&tcode=1070 
평소 E시장에서 파는 마우스패드만 쓰다가 마우스패드 괜찮은 제품을 사용하면 오른손에 부담을 줄여준다고 해서 steelseries 마우스 패드를 구입했다. 


전체 적으로 새깧만 색이다.
왼쪽 하단에 로고가 난 스틸시리즈야 하고 자리잡고 있다. 


크기는 A4용지보다 조금 더 크다


두깨는 상당히 두껍다. 6mm정도 두툼하다.
마우스패드가 6mm정도는 되야 손목에 부담을 덜 준다고 한다.


바닥은 잘 미끄러지지 않는 재질로 되어있다.

마우스를 움직임일때 부드럽게 잘 움직인다.
장시간 사용해도 손바닥 아랫부분이 아프지 않았다.
패드가 커서 마우스를 어디로 움직여도 절대 패드를 이탈 할 경우가 없다.

간만에 맘에 드는 물건 잘 구입했다.

10년여를 거의 마이크로소프트사의 마우스만 사용을 해왔다. 일단 A/S기간만 남아있다면 고장나면 묻지도 따지지도 않고 무조건 1:1교환을 해주기 때문이다.

어느날 인터넷을 뒤지다가 스틸시리즈 마우스를 발견하고 바로 지름신을 영접했다.

가격은 만원후반대로 착하다.

모양을 살펴보자

구입 후 바로 찍은 사진이 아니라 버튼 부분이 맨질맨질해진것 처럼 찍혔는데 손의 기름때다 헝겊으로 닦으면 지워진다. ㅋㅋ

겉의 재질은 얆은 무광고무막을 씌워논 듯한 느낌으로 손에 쥐었을때 일반 플라스틱 보다 훨씬 감촉이 좋았다.
뒷면에는 스틸시리즈로고가 떡하니 인쇄되었는데 잘 지워지지 않는 인쇄로 된거 같다.
마우스 휠은 살짝 걸리는 느낌이 나는데 휠을 움직일때 소리는 거의 안난다. 휠의 움직임도 부드럽지만 살짝 걸리는 느낌으로 밋밋하게 부드럽지만은 않은 느낌이다.

휠 위에 DPI변환 버튼을 달았다. 

마우스선은 직조선으로 잘 꼬이지 않고 마우스 번지를 굳이 안써도 될 정도로 마우스 움직이는데 불편함이 없다. 그리고 선이 마우스 바닥보다 위쪽으로 자리 잡고 있어서 바닥에 선이 걸리적 거리는걸 어느정도 방지했다.

클릭감은 클릭을 했을때 분형이 클릭했다는 느낌을 주지만 손가락에 무리가 가지 않는다. 클릭소리는 일반 마우스 소리정도이다. 
마우스 바닥이다. 스틸시리즈로고가 역시 크게 자리잡고 있다.

마이크로소프트꺼는 블루트랙마우스를 사용했었는데 움직임에 있어서 크게 차이는 못느끼겠다.

게임용 마우스라 그런지 마우스패드서퍼(다리보호)가 앞뒤로 크게달려있었어 마우스 움직일때 굉장히 부드럽다.

마우스 크기는 쥐었을때 편하게 손에 쏙 들어오는 느낌이었다.
무게도 아주 경량은 아니고 무겁지도 않고 해서 손에 무리도 안간다.

만원후반대의 착한가격에 이정도의 마우스면 가성비가 좋은거 같다. 게임용이 아닌 일반 업무용으로 쓰기에도 전혀 손색업다. 난 업무용으로 사용하고 있다.
세가지 함수 모두 ASCII문자로 변화 해주는데 차이점은 변환해 주는 문자의 양이다.

escape는 
[ 알파벳 + 숫자 + @*-_+./ ]  이것을 뺀 나머지 글자는 모두 변환 해준다.

1바이트(뛰워쓰기포함)는 %XX 이런 형태로
2바이트(한글은모두변환된다)는 %uXXXX 형태로 변환된다.

encodeURI는
인터넷 URL에 사용되는 [ 알파벳 + 숫자 + @*-_+./ : ; / = ? ]는 변환을 하지 않습니다.

encodeURIComponent는
인터넷 URL에 사용되는 [ 알파벳 + 숫자 + @*-_+. ]는 변환을 하지 않습니다.
주로 인터넷 url을 변수로 통째로 넘길때 사용한다.

인코딩함수  <-> 디코딩 함수
escape <-> unescape
encodeURI <-> decodeURI
encodeURIComponent <-> decodeURIComponent