2009-12-11 4 views
2

_POST 전역 변수를 사용하여 여러 페이지간에 변수를 전달한 첫 번째 html/PHP 양식을 성공적으로 작성한 다음 mail() 함수를 사용하여 결과를 전자 메일로 보냈습니다.초보자를위한 PHP 양식 보안? 자원?

나는이 양식이 현재 모든 취약성에 취약하고 구멍을 채우는 방법을 알고 싶지만 PHP에 대한 초보자라고 생각합니다.

PHP 양식 보안을 유지하기위한 간단한 튜토리얼을 추천 할 수 있습니까?

답변

1

양식간에 변수를 전달하는 대신 PHP 세션을 사용하는 것이 좋습니다. 이는 입력 데이터를 보호하는 한 가지 방법입니다. 당신이 PHP와 형태를 처음 사용하는 경우

체크 아웃은 this for a start

+0

세션을 사용하면 양식으로 돌아가서 vars의 존재를 확인하고 양식 값에 넣을 수 있습니다. 사람들이 다시 돌아가서 변경되거나 앞으로의 양식 유효성 확인이 이전 페이지가 더 이상 합법적이지 않다는 것을 깨닫게 되었기 때문입니다. – TravisO

1

,이 사이트는 당신을 위해 재미있을 수 있습니다 myphpform.com
가능한 공격에 대한 개요를 제공하는 또 다른 사이트 : phpsec.org

2

첫 번째를, 두 번째 세 번째로 가장 중요한 것은 코드를 보안 할 때 코드가 처리하는 모든 데이터가 어떻게 든 데이터를 훔치고 서버를 방해하려는 것이라고 가정하는 것입니다. 심지어 개인적으로 스크립트에 하드 코딩 된 데이터도 있습니다! : P

데이터를 사용하기 전에 모든 데이터의 유효성을 검사하고 확인해야합니다. intvalfloatval 함수를 사용하여 숫자, 정규식을 확인하여 텍스트 필드 (사용자 이름, 암호 등)를 확인하고 SQL 쿼리를 수행 할 때 항상 Parameterized Statements을 사용해보십시오.

그리고 포함 및 셸 명령에서 사용자 입력을 멀리하십시오. use 입력을 기반으로 include 및 shell 명령을 수행해야하는 경우 실제 사용자 입력에 switch 및/또는 if 문을 사용하고이를 기반으로 정적 명령을 실행하십시오. 그리고 그것도 작동하지 않으면; 유효성을 검사하고 입력을 극단적으로 철저히 검증하여 사용하십시오 ... 손가락을 건 드리면 모든 착취 자들이 다른 방향으로 나아가고 있기를 바랍니다 :)

가장 중요한 것은; 매우 매우 매우 편집증. 사람들은 당신을 얻으 려하고 있습니다! :)

... 다음 자신에게 편안한 취미를 발견, 그래서 당신은

0

처음으로 PHP 애플리케이션으로 나를 도와 일부 작은 보안 팁 미친의 xD를하지 않습니다

  1. 당신이받는 경우를 하나의 웹 페이지에있는 데이터를 읽고 동일한 사이트의 다른 페이지에 액세스하여 $ _SESSION []에 던져 넣으십시오. POST 또는 GET을 통해 숨겨진 양식 필드에 전달하지 마십시오.
  2. 사용자로부터받은 텍스트 데이터가 웹 페이지의 일부로 표시되거나 HTML 메일로 발송되는 경우 항상 표시/메일 링하기 전에 데이터를 strip_tags()하여 XSS 공격에 대응합니다.
  3. 사용자로부터받은 다음 SQL 데이터베이스에 저장해야하는 모든 데이터는 SQL 주입 공격 (즉, mysql의 경우 mysql_real_escape_string 또는 DB 추상화 사용)에 대응하기 위해 이스케이프해야합니다.