2010-02-05 6 views
0

PHP로 처음부터 CMS를 만들었으므로 보안을 강화하는 데 약간의 도움이 필요합니다.PHP 응용 프로그램 보안

/var/www/TESTUSERNAME/includes/val.php 

이 내 값의 보류를 받고 사람들을 막을 수있는 안전한 방법입니다 : 기본적으로 나는 다음과 같이 내 모든 중요한 파일을 정렬 한?

이 값을 데이터베이스에 저장 한 다음이 파일에서 쿼리를 실행하는 것이 더 좋습니까?

내 애플리케이션의 보안을 강화하는 방법에 대한 팁을 줄 수 있습니까?

답변

3

우선 의 취약성을 피할 수 있도록 php installation을 구성하십시오. htaccess 파일을 사용하여 디렉토리를 보호 할 수도 있습니다.

다른 보안 문제는 어떻게됩니까?

XSS
CSFR
SQL 주입
세션 하이재킹
세션 고정

등 SQL 인젝션, XSS에 대한

See this for it.

0

확인 POST 데이터 : 필터 스크립트 (및 HTML)을 귀하의 페이지에 삽입하십시오. 이 두 가지가 가장 중요합니다.

물론 설치를 업데이트하십시오. 또한 당신은 세션에 의존해서는 안됩니다. 누군가가 로그인 한 사용자의 쿠키를 훔친 경우이 사용자로 변경됩니다.

+0

마지막 부분 (세션) : thats bull **** -> 세션 도용 및 세션 고정에 대해 읽습니다. 또는 Sarfraz Ahmed의 링크 – Deefjuh

0

데이터베이스에 값을 넣으면 SQL 주입에 대해 걱정해야합니다. 매개 변수가있는 quires를 사용하지 않는 경우 SQL 주입에 심각한 문제가있을 수 있으며 데이터베이스에 값을 이동하면 공격 범위가 증가하기 때문에 나쁜 생각 일 수 있습니다. MySQL SQL injection에서는 val.php와 같은 파일을 읽는 데 사용할 수 있습니다. 웹 응용 프로그램에 "FILE"권한이 없는지 확인하십시오. 또한이 파일에서 권한이 올바르게 설정되어 있는지 확인해야합니다. chmod 750은이 파일 중 좋은 파일이며, 마지막 숫자 0은 본인 또는 그룹에 속하지 않은 모든 사용자에 대한 모든 액세스를 거부합니다.

print file_get_contents("/var/www/whatever/".$_GET['FILE_NAME']); 

이동 코드 비록 당신이 읽고 파일을 작성하는 곳으로주의 : val.php의 값을 유지하여

여전히이 같은 디렉토리 탐색 취약점에 대해 걱정할 필요가. 사용자 정의 컨트롤 변수를 전달하지 않았는지 확인하십시오. 공격자에게 방부제를 PHP로 제공하고 파일을 읽을 수있는 다른 방법을 배우고 싶다면 A Study In Scarlet을 읽어 보시기 바랍니다.

관련 문제