xe 모듈을 제작하는건 아니고 php로 사이트를 제작하고 있습니다
초보라서 인터넷 검색해가며 해킹 방지를 생각하며 코드를 작성했는데
xss 방지를 위해서 htmlspecialchars() 를 사용자가 입력한 정보를 출력할때 사용했고
Sql 인젝션을 방지를 위해 POST로 받아오는 정보를 $ex = mysqli_real_escape_string($conn, $_POST['ex']); 이렇게 작성했습니다
해킹을 방지하기 위해서 저 두개의 대책만 사용하여도 충분한지 궁금합니다
감사합니다
화면에 내용을 출력할 때 htmlspecialchars는 잘 하고 계십니다.
DB에 입력할 때 각 변수의 escape에만 의존하기보다는
prepared statement (파라미터 바인딩) 사용법을 익히시면 좋습니다.
mysqli 함수도 가능한 버리고, 모든 DB 관련 작업에는 PDO를 쓰시는 걸 추천합니다.
mysqli는 파라미터 바인딩이 힘들어서, 귀차니즘 때문에 안 좋은 방법으로 코딩하게 될 위험이 높습니다.
보안은 해커와의 싸움보다도 나 자신의 귀차니즘과의 싸움입니다.
htmlspecialchars도 일일이 쓰기 귀찮죠? 그러면 허점이 생기게 마련입니다.
일단 그렇게 XSS와 SQL 인젝션은 막을 수 있고,
이제 CSRF, 세션 탈취, 파일 업로드를 통한 웹쉘이나 directory traversal 공격 등
다른 수백 가지 공격도 감안해서 코딩을 해야겠지요. ㅠㅠ