eval() 함수 : 문자열을 코드로 인식하게 하는 함수

 

eval()

eval()은 문자열을 코드로 인식하게 하는 함수입니다.

 

문법

  eval( string )

 

 

예를 들어,

  eval( '2+2' )

 

는 문자열 2+2가 아니라 계산한 결과 4입니다.

 

 

 

예제

 

<소스 코드>

<!doctype html>
<html lang="ko">
    <head>
       <meta charset="utf-8">
       <title>JavaScript</title>
       <style>
          body {
              font-family: Consolas, monospace; }
       </style>
    </head>
    <body>
       <script>
           var jb = '2+2';
           document.write( '<p>' + jb + '</p>' );
           document.write( '<p>' + eval( jb ) + '</p>' );
       </script>
    </body>
</html>

 

 

<웹페이지 출력값>

 

 

 

출처 : 

www.codingfactory.net/11024

'Web Programming Language > JS' 카테고리의 다른 글

변수와 상수  (0) 2024.12.03
JavaScript란?  (0) 2024.12.03
java script) history.back(), history.go(), history.forward()  (0) 2020.10.27

magic_quotes_gpc 설정

 

magic_quotes_gpc 설정
php.ini 파일에서 magic_quotes_gpc 설정이 true 인경우 GET, POST, COOKIE 에 ', ", \ 가 있으면 \(역슬래시) 자동추가된다.

 

SQL Injection 공격실습을 위해서는 C드라이브 - php.ini파일 - magic_quotes_gpc 설정을 Off로 해주어 특수문자 사용이 가능하게 해준다.

 

 

 

php코딩시 변수에 ' , " 등이 있을경우에 대해서 글을 쓴적이 있다. 

위와같은 입력이 허용되면 SQL 인젝션 공격에 취약해지기 때문에 addslashes()를 해줘야한다. 

그러면 특수문자 앞에 \(역슬러시)가 붙기 때문에 입력값으로 인젝션 공격에 사용되는 특수문자가 들어왔을 때 이 특수문자를 일반문자열로 처리하여 SQL 인젝션을 방어할 수 있게 된다. 

그리고 데이터를 불러온후 표현할때는 stripslashes를 사용하여 특수문자 앞에 붙은 \ 를 제거하고 원래 데이터를 표현한다. 

 

사용자의 데이터 입력값에 쿼리를 조작하기 위한 ' 등이 있을경우 이를 \ 처리 해주므로 안전하게 된다.

get_magic_quotes_gpc()는 magic_quotes_gpc의 설정값을 반환한다.

 

 

 

<사용 예>

 

1. DB에 저장시 해당 문자에 \(역슬래시) 추가
$_POST['text'] = addslashes($_POST['text']);

2. 화면에 출력시 추가된 \(역슬래시) 제거
$_POST['text'] = stripslashes($_POST['text']);

3. magic_quotes_gpc 설정에 따른 방법
php.ini 파일에서 magic_quotes_gpc 설정이 true 인경우 GET, POST, COOKIE 에 ', ", \ 가 있으면 \(역슬래시) 자동추가

 


magic_quotes_gpc 설정값 true, false 확인하여 처리

 

if (!get_magic_quotes_gpc())
{
// false이면 \ 추가
$_POST['text'] = addslashes($_POST['text']);
}
else
{
// true이면 \ 제거
$_POST['text'] = stripslashes($_POST['text']);
}

 

 

 

 

출처 :

blog.naver.com/soul7992/221708477422

 

blog.naver.com/ilikebigmac/221378608109

session_destroy( )

 

세션 변수와 쿠키만 설정 해제하는 경우 세션은 여전히 ​​서버 측에서 활성화되며 일부 세션 변수가 다시 설정되고 원래 세션 ID가있는 쿠키가 클라이언트로 다시 전송되면 잠재적으로 재활용될 수 있습니다. 따라서, session_destroy( ) 함수를 이용해 세션을 제거하여야 합니다. 

 

 

 

(PHP 4, PHP 5, PHP 7)

 

session_destroy( )  :  세션에 등록된 모든 데이터를 삭제합니다.

 

설명 

 

session_destroy ( void ) : bool

 

session_destroy ()는 현재 세션과 관련된 모든 데이터를 파괴합니다. 세션과 관련된 전역 변수를 설정 해제하거나 세션 쿠키를 설정 해제하지 않습니다. 세션 변수를 다시 사용하려면 session_start ()를 호출해야합니다.

 

세션을 완전히 종료하려면 세션 ID도 설정 해제해야합니다. 쿠키를 사용하여 세션 ID를 전파하는 경우 (기본 동작) 세션 쿠키를 삭제해야합니다. 이를 위해 setcookie ()를 사용할 수 있습니다.

 

 

 

반환 값

 

TRUE성공 또는 FALSE실패 에 대해 반환합니다 .

 

 

예 #1 $ _SESSION을 사용하여 세션 삭제

<?php
// 세션을 초기화하십시오.
// session_name("something")을 사용하고 있다면 지금 잊지 마십시오!

session_start();

// 모든 세션 변수 설정 해제.

$_SESSION = array();

// 세션을 종료하려면 세션 쿠키도 삭제하십시오.
// 참고: 이렇게 하면 세션이 파괴되고 세션 데이터만 파괴되는 것이 아니다!

if (ini_get("session.use_cookies")) {
    
$params session_get_cookie_params();
    
setcookie(session_name(), ''time() - 42000,
        
$params["path"], $params["domain"],
        
$params["secure"], $params["httponly"]
    );
}

// Finally, destroy the session.
session_destroy();
?>

 

 

session_start() : php에서 세션을 관리(핸들링)하기 위해 선언하는 함수.

 

 

세션


세션(session)이란?

 

세션(session)이란 웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법을 의미합니다.

사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라고 합니다.

 

앞서 살펴본 쿠키는 클라이언트 측의 컴퓨터에 모든 데이터를 저장합니다.

하지만 세션은 서비스가 돌아가는 서버 측에 데이터를 저장하고, 세션의 키값만을 클라이언트 측에 남겨둡니다.

브라우저는 필요할 때마다 이 키값을 이용하여 서버에 저장된 데이터를 사용하게 됩니다.

 

이러한 세션은 보안에 취약한 쿠키를 보완해주는 역할을 하고 있습니다.


세션 시작

PHP에서는 session_start() 함수를 이용하여 새로운 세션을 시작하거나, 기존의 세션을 다시 시작할 수 있습니다.

 

session_start() 함수는 세션 아이디가 이미 존재하는지를 확인하고, 존재하지 않으면 새로운 아이디를 만듭니다.

만약 이미 존재하는 세션 아이디가 있을 때는 원래 있던 세션 변수를 다시 불러와서 사용할 수 있도록 합니다.

 

세션 아이디는 웹 서버에 의해 무작위로 만들어진 숫자입니다.

이 세션 아이디는 세션이 유지되는 동안 클라이언트 측에 저장되며, 세션 변수를 등록하는 키로 사용됩니다.

웹 서버에서는 클라이언트로부터 받아온 세션 아이디를 가지고, 해당 아이디에 대응되는 세션 변수에 접근할 수 있습니다.

 

쿠키와 마찬가지로 세션도 어떤 헤더보다도 먼저 생성해야만 합니다.

 

<예제>

@session_start();

 

세션의 지속 시간은 쿠키와 달리 php.ini 파일에 설정되어 있으므로, 따로 명시해주지 않아도 됩니다.

 

 

 

 

출처 : 

tcpschool.com/php/php_cookieSession_session

PHP에서 페이지 전환(리다이렉션)을 하고 싶을 때 사용할 수 있는 4가지 방법

 

 

1. 자바스크립트 Location.href 이용

echo "<script>location.href='URL 또는 경로'</script>";

 

2. 자바스크립트 Location.replace 이용

echo "<script>location.replace('URL 또는 경로')</script>";

 

3. Header 이용

header("location: URL 또는 경로");

 

4. 메타태그 이용

echo "<meta http-equiv='refresh' content='시간' url='URL 또는 경로'";

 

 

 

출처 :

tw-news.tistory.com/15

# 자바스크립트 이전 페이지로 이동하는 방법이 경우 자바스크립트 객체인 history 객체를 사용하여 이동하는 방법이 존재합니다. history 객체는 페이지를 이동하기 위한 다양한 메소드를 가지고 있습니다. 가장 대표적인 메소드는 무엇이고 어떻게 사용하는지 예제와 함께 알아보도록 하겠습니다.

우선 아래는 가장 많이 쓰이는 history 객체의 메소드 값입니다.

history.back();
history.go();
history.forward();


위 메소드, 즉 함수들을 사용하면 현재 페이지에서 뒤로가거나 앞으로 이동이 가능합니다. 이에 대하여 간략하게 설명하자면...

@ history.back()
현재 페이지의 한단계 이전페이지로 이동합니다. 이는 history.go(-1)과 동일합니다.

@ histroy.go()
이전 또는 이후 페이지의 이동이 가능합니다. 사용방법은 전달할 인자에 숫자를 넣어 이동하게 됩니다. 1 또는 -1 등을 사용하여 이전 또는 이후로 이동할 수 있습니다.

@ history.forward()
이 방법을 사용할 경우 이후 페이지인 다음 페이지로 이동합니다. 동작하는 것은 history.go(1)과 동일합니다. 만약 다음으로 이동할 페이지가 없는 경우 동작하지 않습니다.


여기까지 자바스크립트를 이용해 이전 또는 이후 페이지로 이동하는 방법에 대하여 간단하게 확인해보았습니다. 다시 보자면 history.back() history.go() 둘 다 뒤로 돌아가는 기능은 동일합니다. 다만 가장 큰 차이점이라면 history.back()은 한 페이지 이전으로만 돌아갈 수 있고, history.go()는 원하는 만큼 뒤로 이동이 가능하다는 점입니다. history.forward() 역시 비슷합니다. 그럼 아래는 이를 사용하여 실제로 구현한 예제소스입니다.



# history.go(), history.back() 예제 소스아래 예제를 봐주세요. 이전 또는 다음 페이지로 이동하는 예제입니다.

 

histroy.go(-1);
// 이전 페이지... 즉 한단계 뒤로 돌아가기

histroy.go(-2);
// 두단계 이전의 페이지로 이동

histroy.go(-3);
// 세단계 이전의 페이지로 이동

history.back();
// history.go(-1)과 동일한 기능을 구현하나 go(-1)이 보편적으로 사용됨

history.forward();
// history.go(1)과 동일하며 앞으로 이동

 

 

 

 

출처 :

webisfree.com/2016-05-27/[javascript]-%EC%9D%B4%EC%A0%84-%ED%8E%98%EC%9D%B4%EC%A7%80%EB%A1%9C-%EB%8F%8C%EC%95%84%EA%B0%80%EA%B8%B0-history-back()-history()-go()

'Web Programming Language > JS' 카테고리의 다른 글

변수와 상수  (0) 2024.12.03
JavaScript란?  (0) 2024.12.03
JavaScript) eval() 함수  (0) 2020.10.29

+ Recent posts