PHP&MySQL

보안 - filtering

루체도 2019. 9. 9. 21:11

사용자로부터 정보를 받으면서 사용자로부터 받는 정보는 오염이 될 가능성이 생깁니다.

그래서 이런것을 방지를 해줘야 합니다.

일어날 수 있는 주요한 사고는 크게 두가지 입니다.

하나는 들어오는 정보에서 문제가 있는 정보를 막아내는 것이고

다른 하나는 이미 문제가 있는 정보가 들어와 있는 상태에서 그 정보가 사용자에게 노출되는 것을 막는것.

즉 입력단과 출력단 모두에서 문제가 발생할 수 있다는 것입니다.

입력 공격의 차단을 filtering 출력 공격의 차단을 escaping 이라고 합니다.

 

보안에 있어서 첫번째 요소는 사용자가 입력한 정보를 철저히 불신하라는 것입니다.

그리고 어떻게 불신해야 되는가에 대한 것도 상당히 중요합니다.

이번 글에는 바로 그 불신의 기술을 알아보는 것입니다.

사용자가 입력하는 것에는 이러한 것들입니다. URL파라미터의 값을 임의로 바꿔서 공격하는 것입니다.

mysqli에는 이런 API가 있습니다.

mysqli_real_escape_string() - 인자로 들어온 데이터 중에서 sql을 주입하는 공격과 관련된 기호들을 문자로 바꿉니다.

이런식으로 처리를 해주시면 됩니다.

이제 이것들을 craete부분에도 넣어주면 됩니다.

이렇게 처리를 하면 예방접종을 마친 것과 같다고 생각하시면 됩니다.

어떻게 예방접종을 하는지 궁금하다면 sql injection의 원리 영상을 보면 될 것 같다.