개발! 딱 깔끔하고 센스있게!

PHP MySQL$u gethhack prevention[사본] 본문

개발 스크랩 메모/PHP

PHP MySQL$u gethhack prevention[사본]

렉사이 2020. 12. 24. 22:37

Possible Duplicate:
Best way to stop SQL Injection in PHP

만약 내가 GET 함수를 URL 에서 검색 변수를 사용한다면 어떻게 해킹 공격을 받지 않을 수 있습니까?지금 나는 adslashes 밖에 없는데 뭘 추가해야 합니까?

$variable1 = addslashes($_GET['variable1']); //www.xxxxx.com/GetTest.php?variable1=xxxx 

대답

첫 번째도 가장 중요한 규칙입니다.

입력을 포함해서 GET 뿐만 아니라 $POST, $파일 및 디스크 또는 흘러서 읽는 어떤 내용도 항상 검증해야 합니다.

현재, 당신의 질문에 더 자세하게 대답하기 위해, 당신은 몇 명의 해커가 이 세상에 존재합니다.

내가 보여 줄게:

XSS 주사

URL 에서 나온 데이터를 받아들일 경우, 예를 들면 $에서 이 데이터를 출력하고, 불가능한 표시를 하지 않으면 XSS 에 주입하거나 코드를 입력할 수 있습니다.

예를 들어:

http://myhoturl.com/?search= 

이것은 해커가 당신의 사이트에 출력할 때, 사람들은 다른 페이지로 다시 정착될 것이다.

이 웹 페이지는 아마도 인터넷 낚시 근거 를 훔치려고 시도한 것 이다

SQL 주입

SQL 을 응용 프로그램에 넣을 수 있습니다.

예를 들어:

http://myhoturl.com/?search=%'; UPDATE users SET password=MD5('hello'); SELECT * FROM users WHERE username LIKE '% 

SQL 을 이렇게 보이게 해줄게:

SELECT * FROM articles WHERE title LIKE '%%'; UPDATE users SET password=MD5('hello'); SELECT * FROM users WHERE username LIKE '%%'; 

따라서 모든 사용자의 비밀번호를 Hello 로 업데이트하고 일치하지 않는 내용을 되돌려야 합니다.

이것은 SQL 에 주입한 간략한 개술일 뿐이다.

자신을 보호하기 위해 mysqlu escapeu string 또는 PDO 또는 어떤 좋은 DB 추상층도 사용할 수 있습니다.

코드 주입

많은 사람들이 디스크에 있는 어느 곳에 데이터를 포함하고 파일을 업로드하는 것을 좋아한다.

예를 들어:

//File igotuploaded.txt  

url 은 이름으로 파일을 포함할 수 있습니다.

디스플레이 = my hotfile.txt

//In this file we include myhotfile.txt include($_GET['show']); 

그 사람이 그것을 바꾸어?show=./uploads/igotuploaded.txt, echo'Hello world'를 실행할 예정입니다.

그것은 매우 위험하다.

경험의 법칙.사용자 입력을 신뢰하지 않고, 시종 검증, 저지, 검증, 복구, 검증, 검증, 다시 정정합니다.

행운을 빕니다.

Comments