프로그램/php2013. 1. 30. 10:49
반응형

php 특수문자 정규식을 이용해서 <- 클릭

이름, 주민등록번호, 아이디, 비밀번호, 생년월일, 휴대전화번호, 필명(닉네임) 등을 확인한다.

 

// alert 창
function Alert($msg)

{
 echo "<script language='javascript' type='text/javascript'>alert('".$msg."');</script>";
 exit;
}

 

$userid = '아이디';

$nick = '별명';

$passwd = '비밀번호';

$name = '이름';

$birthday = '생년월일';

$phone = '휴대전화번호';

$email = '이메일주소';

$addr = '주소';

 

$msg_cancel = '잘못된 정보입니다.';

 

// 아이디
if(!rtnSpecialCharCheck($userid))
{
 Alert($msg_cancel);
 exit;
}

// 필명
if(!rtnSpecialCharCheck($nick))
{
 Alert($msg_cancel);
 exit;
}

// 비밀번호
if(!rtnSpecialCharCheck($passwd))
{
 Alert($msg_cancel);
 exit;
}

// 이름
if(!rtnSpecialCharCheck($name))
{
 Alert($msg_cancel);
 exit;
}

// 생년월일
if(!rtnSpecialCharCheck($birthday))
{
 Alert($msg_cancel);
 exit;
}

// 휴대전화
if(!rtnSpecialCharCheck(str_replace("-","",$phone)))
{
 Alert($msg_cancel);
 exit;
}

// 이메일
if(!rtnSpecialCharCheck(str_replace("@","",str_replace("-","",str_replace("_","",str_replace(".","",$email))))))
{
 Alert($msg_cancel);
 exit;
}

// 주소
if($addr && !rtnSpecialCharCheck(str_replace(" ","",str_replace("-","",str_replace("_","",str_replace("(","",str_replace(")","",$addr)))))))
{
 Alert($msg_cancel);
 exit;

더보기>

자바스크립트 정규식을 이용해서 이메일을 확인할 수 있다. <- 클릭

반응형
Posted by 은둔고수
프로그램/php2013. 1. 30. 10:31
반응형

SQL Injection 해킹에 대한 보안 방지를 위한 php 정규식이다.

// 확인 : PHP SQL Injection 보안
// 설명 : 특수문자를 체크해서 있다면 false 반환, 없으면 true
function rtnSpecialCharCheck($str)
{
 if(preg_match("/[#\&\\+\-%@=\/\\\:;,\.\'\"\^`~\_|\!\/\?\*$#<>()\[\]\{\}]/i", $str,  $match))
 {
  return false;
 }

 return true;
}

 

// 이름

$name = '홍길동';
if(!rtnSpecialCharCheck($name))
{
 echo "<script>alert ('잘못된 정보입니다.');</script>";
 exit;
}

 

// 주민등록번호

$jumin = '9101011234564';

if(!rtnSpecialCharCheck($jumin))
{
 echo "<script>alert ('잘못된 정보입니다.');</script>";
 exit;
}

 

위 소스 내용을 토대로 다른 특수문자와 관련한 정규 표현식을 이용해서 응용할 수 있다. <- 클릭

 

php.ini 파일 설정 magic_quotes_gpc = On을 이용하는 방법 <- 클릭

반응형
Posted by 은둔고수
프로그램/php2012. 7. 12. 09:53
반응형

php에서 간혹 숫자를 원하는 자리 수로 표현을 해야 할 경우가 있다.

예를 들어 2자리로 표현을 해야 한다면 1이면 01로 , 10이면 10 이런 식으로 말이다.

이럴 때 해결 방법 중에는 printf를 이용하는 방법이 있다.

예>printf("%02d",숫자);

숫자 부분에 1~2자리로 된 숫자를 입력하면

1이면 01로 10이면 10으로 출력을 해준다.

반응형
Posted by 은둔고수
프로그램/php2012. 2. 27. 15:39
반응형


php를 설치한 후 php.ini 파일을 열어보고 magic_quotes_gpc 설정이 On으로 되어있다면
sql 인젝션 공격에 대한 대비가 어느정도 되어있다고 할 수 있다.

 

[php.ini] 소스 내용 중 magic_quotes_gpc 부분

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On


하지만 이 설정을 사용하지 않는다면 php에서 sql injection 공격을 방지할 수 있는 처리를 해야 한다.


// sql injection 처리
function chk_sqlinjection()
{
 if(!get_magic_quotes_gpc())
 {
  foreach($_POST as $k => $v)
  {
    $_POST[$k] = addslashes($v);
  }

  foreach($_GET as $k => $v)
  {
    $_GET[$k] = addslashes($v);
  }

  foreach($_SERVER as $k => $v)
  {
    $_SERVER[$k] = addslashes($v);
  }

  foreach($_COOKIE as $k => $v)
  {
    $_COOKIE[$k] = addslashes($v);
  }
 }
}

 

참고>

php 5.3 부터는 배제가 되며 php 6.0 이후부터는 magic_quotes_gpc가 아예 제거된다고 한다.

반응형
Posted by 은둔고수
프로그램/php2010. 4. 16. 15:35
반응형


/* 문자열 변환
// $str : 문자열(html, text)
// 반환 : trim() + text 형태 + <br> 처리
*/
function rtnShowTextBr($str)
{
 $str = trim($str);
 $str = htmlspecialchars($str);
 $str = stripslashes($str);
 $str = str_replace("\n","<br>", $str);
 $str = str_replace(" ","&nbsp;",$str);

 return $str;
}


/* 문자열 변환
// $str : 문자열(html, text)
// 반환 : trim() + html 형태
*/
function strHtml($str)
{
 $str = trim($str);
 $str = stripslashes($str);

 return $str;
}


/* 문자열 변환
// $str : 문자열(html, text)
// 반환 : trim() + html 형태 + <br> 처리
*/
  function rtnShowHtmlBr($str)
{
 $str = trim($str);
 $str = stripslashes($str);
 $str = str_replace("\n","<br>", $str);

 return $str;
}

/* 문자열 변환
// $str : 문자열(html, text)
// 반환 : html 형태 + <br> 처리
*/
function rtnShowBodyText($text)
{
 return nl2br(stripslashes($text));
}

 

/* 문자열 변환
// $str : 문자열(html, text)
// 반환 : trim() + text 형태 문자열
*/
function rtnShowText($str)
{
 $str = trim($str);
 $str = htmlspecialchars($str);
 $str = stripslashes($str);

 return $str;
}

참고> str_replace("\n","<br>",$str); 대신 nl2br()을 사용해도 된다.

반응형
Posted by 은둔고수
프로그램/php2010. 4. 13. 13:46
반응형


업로드가 잘 되었으나 갑자기 안되거나 또는 
$HTTP_POST_FILES['fileImg'] 을 출력해보면 값이 없는(NULL) 경우
php 설정을 확인해 본다.
기존에 설치한 php 설정과 새로 설치한 php 설정이 다르기 때문일 수 있다.
다음 처럼 변경 후 확인 해 본다.
$HTTP_POST_FILES -> $_FILES

만약 위처럼 한 후에 해결이 되었다면 추가로 다음도 확인한다.
$HTTP_POST_FILES -> $_FILES
$HTTP_GET_VARS -> $_GET
$HTTP_POST_VARS -> $_POST
$HTTP_COOKIE_VARS -> $_COOKIE
$HTTP_SESSION_VARS -> $_SESSION
$HTTP_SERVER_VARS -> $_SERVER

반응형
Posted by 은둔고수
프로그램/php2010. 4. 7. 18:05
반응형

쿠키를 무한정으로 사용할 수 없다.
쿠키에도 크기 제한이 있으며 대부분의 브라우저에서의
쿠키 크기는 4096바이트(byte) 제한되어 있다.
반응형
Posted by 은둔고수
프로그램/php2010. 4. 7. 18:01
반응형

get 방식으로 값을 넘기는 경우 너무 많은 값을 넘기게 되면 전달할 수 없게 된다.
즉, 크기에 제한을 받는다.

URL 길이는 2083문자로 제한된다.

http://사이트/index.html?parameter1=값&parameter2=값2...
반응형
Posted by 은둔고수
프로그램/php2009. 9. 4. 14:12
반응형

php 에서 브라우저 버전 알아내기

1. 웹 브라우저 ie6 알아내기
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0') === false)
{
  // 처리
}
반응형
Posted by 은둔고수
프로그램/php2009. 7. 20. 22:25
반응형

[php-tip]PHP $_SERVER 함수

 

 

$_SERVER['HTTP_HOST'] = 사이트 도메인

-> www.twar.co.kr

$_SERVER['DOCUMENT_ROOT'] = 현재 사이트가 위치한 서버상의 위치

-> /public_html/

$_SERVER['HTTP_USER_AGENT'] = 사이트 접속한 사용자 환경

-> Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705

$_SERVER['REMOTE_ADDR'] = 사이트 접속한 사용자 IP

-> xxx.xxx.xxx.xxx

$_SERVER['SCRIPT_FILENAME'] = 실행되고 있는 위치와 파일명-> /public_html/include/index.php

$_SERVER['SERVER_PORT'] = 사용하는 포트

-> 80

$_SERVER['REQUEST_URI'] = 현재페이지의 주소에서 도메인 제외

-> /index.php?id=hong&name=홍길동

$_SERVER['PHP_SELF'] = 현재페이지의 주소에서 도메인과 넘겨지는 값 제외

-> index.php

 

 

주로 사용하는 서버 함수만 표기했습니다. 이 외에도 더 있습니다.

<?php

var_dump($_SERVER);

?>

을 이용해서 보다 자세한 정보를 얻을 수 있습니다.


반응형
Posted by 은둔고수