Search results for 'Php'

PHP팁

2009/07/03 21:55


웹사이트에 성능에 영향을 주는 부분은 최적화되지않은 또는 부적적한 쿼리문을쓴 데이터베이스에 있다.
만약 데이터 베이스 쿼리문은 최적화가 되었더라도 그보다 더 성능을 올리기 위해서 PHP프로그램내에서 몇가지 수정을 하면 성능개선에 큰도움이 된다.

* 쌍따옴표 대신 홑따옴표을 쓰자.*
쌍따옴표로 문자열을 감싸게되면 PHP문자열 전체를 처리하게 됩니다. 처리되지 않고 그대로 유지될경우 나중에 처리되어야할 문자열의 경우 일반 따옴표를 쓰는 것이 좋습니다.
문자열에 홑따옴표가 들어갈 경우 따옴표마다 앞에 역슬래쉬를 붙여줘야합니다.
str_replace() ->쌍따옴표 앞에 역슬래쉬는 붙여준다.

-  $abc = 'abc';    //홑따옴표를 써주자.
-  $abc = "aa1{$abc} aa2{abc2->var}";  //쌍따옴표 안에서 변수를 쓸땐 { } 로 감싸주는것이좋다. 객체변수, 배열변수, 배열+객체변수도 삽입가능합니다.

* 루프문에서 함수사용을 자제하자*
.일반 우리가 쓰는 for루프.
-for($i=0; $i<=count($array); $i++){}  
for루프를 돌떄마다 루프문의 두번째 인자인 count함수는 불려지게 된다. 배열이 크면클수록 함수를 부르는데 걸리는 시간이 만만치 않다 당연히 시간도 오래걸리게 됩니다.

.이렇게 바꿔써보자.
- 1) for($i=0, $cnt=count($array); $i<=$cnt; $i++);
- 2) $cnt = count($array);
       for($i=0; $i<=$cnt; $i++){}
이렇게 쓰는 방법을 습관하 하자..
2009/07/03 21:55 2009/07/03 21:55

미소 Php ,



SQL Injection 취약점을 이용한 공격 방아하기 ASP, PHP

2009/07/03 21:50


SQL Injection 처리 관련 ASP, PHP 함수 이다.
내용 입력시 FCK Editor 를 사용할 경우 ASP 경우 ';' 처리 부분을 주석처리 해야한다.
ASP 함수의 경우 부분적으로 MS-SQL 관련 처리를 포함하고 있다.
PHP 경우는 정규식으로 만들었다.


## ASP
function SQL_Injection( get_String )

   get_String = REPLACE( get_String, "'", "''" )
   get_String = REPLACE( get_String, ";", "" )
   get_String = REPLACE( get_String, "--", "" )
   get_String = REPLACE( get_String, "select", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "insert", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "update", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "delete", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "drop", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "union", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "and", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "or", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "1=1", "", 1, -1, 1 )

   get_String = REPLACE( get_String, "sp_", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "xp_", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "@variable", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "@@variable", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "exec", "", 1, -1, 1 )
   get_String = REPLACE( get_String, "sysobject", "", 1, -1, 1 )

   SQL_Injection = get_String

end function


## PHP
function SQL_Injection($get_Str) {

   return eregi_replace("( select| union| insert| update| delete| drop|\"|\'|#|\/\*|\*\/|\\\|\;)",
      "", $get_Str);

}

2009/07/03 21:50 2009/07/03 21:50

미소 Php