보안 유지에 대한 책임을 일부 가이드라인이며 며칠입니까 세션 및 PHP? # 39 의 정보, 웹 및 it& there& s about time it all, all over the # 39 한 곳에 도착!
몇 가지 보안 유지를 위해 세션이 활기찼다.
내 두 개 이상의 센트.
하지만 좋은 책 이 주제에 대해 작은 있습니다. [에센셀 PHP 방식으로 보안을 크리스 시프렛] (http://phpsecurity.org/).
! [에센셀 PHP 보안] (http://shiflett.org/images/essential-php-security-small.png)
이 책은 몇 가지 흥미로운 홈 페이지에서 확인할 수 있습니다, 샘플 코드 예제를 장.
위에서 언급한 기법을 사용할 수 있습니다 (IP &. 우저지나) 에 있습니다. [Id 도용 방지 방법] (http://devzone.zend.com/article/11906)
제가 생각하는 가장 큰 문제 (중인 ruettgers 미리 6) 가 register_globals. 표준 방법 중 하나는 '는' 지금 '$ _REQUEST 를 사용하여 register_globals 피하기 위해 사용되는', '' 또는 '$ $ _GET _POST' 배열입니다.
이 " correct"; 길일 (vmware. 5.2, 비록 it& # 39 의 조금 있지만, 이는 곧 6 확장되어도 아니했다고 갈레라 컴퍼니) 를 통한 라우트입니다 필터링합니다.
그래서 대신:
$username = $_POST["username"];
어떻게 해야 할 것입니다.
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
심지어 그냥.
$username = filter_input(INPUT_POST, 'username');
이 세션이고 르되 종이용 의 매우 좋은 포인터 creditbank. 공포감말이야 올 수도 있다. 참조 세션이고 르되 페이지 http://www. 위키백과.
대신 I& 저장하기 위한 별도의 세션을 # 39, ve 도메인과의 on my 서버 db 를 선택했다. 이런 식으로 아무도 해당 세션에 액세스할 수 있는 파일 시스템 정보. 이 정말 도움됐네 전에 3.0 (they& # 39, ve 고정식입니다 이후 이) 이지만 it& phpBB 와 # 39 의 여전히 좋은 생각인 것 같네요.
이것은 아주 사소한 및 명백하네 있지만 반드시 사용할 때마다 session_destroy. 이 경우 사용자는 로그아웃 언약보다는 구현하십시오 어려울 수 있습니다, 그래서 이를 명시적으로 타이머 설정할 수 있습니다.
자습서는 의 좋은 슬라이드에서는 세티머 () 와 클래티머 ().
주요 PHP 세션 및 보안 (목동들과 세션이고 납치) 에는 어떤 환경 문제가 있습니다. Php 는 기본적으로 세션 data-in 있는 파일을 OS& # 39 의 임시 디렉터리입니다. 이는 세계 특수 돌아보 또는 계획 없이 읽을 수 있는 공용 세션정보를 디렉터리로 당신의 모든 사람에게 액세스하도록 합니다.
세션 유지하기 위한 여러 대의 서버를 통해 있다. Php 를 사용자 세션 곳에 게 좋을 것 같다 그 시점에서 전환하십시오 처리됩니까 페이징됩니다 침전물 (작성, 읽기, update, delete) 기능을 제공하는 사용자 세션 데이터. 이 시점에서 이 같은 데이터베이스 또는 메맥체 세션 정보를 저장할 수 있습니다 모든 애플리케이션 서버 솔루션 도왔으매 데이터에 액세스할 수 있다.
또한 사용하고 있는 경우에는 공유 서버에 저장하고 İç 세션은 유리할 수 있기 때문에 이를 제어할 수 있는 그런 경우가 많은 파일 시스템의 데이터베이스에 저장한다.
이렇게 내 세션 - i set up
http://cowcast. creativecow. 로그인하십시오 페이지:
$_SESSION['fingerprint'] = md5($_SERVER['HTTP_USER_AGENT'] . PHRASE . $_SERVER['REMOTE_ADDR']);
(구입니다 에서 정의된 구성용 페이지에서와
그럼 남은 기간 동안 헤더에 있는 사이트.
session_start();
if ($_SESSION['fingerprint'] != md5($_SERVER['HTTP_USER_AGENT'] . PHRASE . $_SERVER['REMOTE_ADDR'])) {
session_destroy();
header('Location: http://website login page/');
exit();
}
Session_set_save_handler () 사용할 경우 자신의 세션이고 처리기에서 설정할 수 있습니다. 예를 들어 세션이 데이터베이스에 저장할 수 있습니다. 자세한 내용은 php.net 에 대한 의견 예로는 데이터베이스 세션을 처리기에서.
그렇지 않으면 좋은 세션 역시 db 서버를 사용하는 경우 여러 개 있을 경우 사용자가 필요로 하는 것을 확인할 수 있도록 각 웹 서버 기반 세션 파일 같은 파일 시스템 읽기 / 쓰기 세션에 액세스할 수 있다.
반드시 필요한 세션 데이터를 안전하게 있다. 파피니 보면 프핀포 () 또는 사용하는 사용자 세션 설정 당신을 찾을 수 있습니다. 그 위치를 알려주는 _session.savepath 저장됩니다.
해당 폴더 및 확인란 허락을 했다. # 39, t be it shouldn& 공개 (/ tmp) 또는 공유 서버 상의 다른 웹 사이트를 통해 액세스할 수 있습니다.
넌 아직도 php 세션용으로 사용할 때 사용하는 php 를 설정할 수 있습니다 데이터베이스의 데이터를 저장하거나 다른 폴더로 _session.savepath 변경하여 변경하여 _session.savehandler.
파피니 _session.savepath 설정할 수 있습니다 (일부 제공자에서 허용될) 에 apache + mod_php 충족하거나 .htaccess 파일 루트 폴더에 있는 사이트에서. ,,, < code> php_value session.save_path " /home/example.com/html/session" < /code>. 런타임에 _을 _session_save_path () 로 변경할 수 있습니다.
확인란 크리스씨가 Shiflett& # 39 의 자습서는 또는 Zend_Session_SaveHandler_DbTable 설정하고 교체품 세션이고 처리기에서.