PHP (PDO) 및 MySQL로 작성된 간단한 연락처 데이터베이스 응용 프로그램이 있습니다. 이것은 switch case 문이있는 단일 파일입니다. 기본값은 연락처 테이블을 표시합니다. 대소 문자를 추가, 편집, 삭제 등의 기능을합니다. 모든 MySQL 문은 PDO에서 준비된 문입니다.숨겨진 필드로 매개 변수가있는 POST 또는 POST POST - 보안 및 기타
내 질문 : 이동하는 매개 변수가있는 html 링크를 사용하는 것이 더 좋으며 숨겨진 필드로 매개 변수가있는 POST 양식을 사용하는 것이 더 낫습니다.
<a href="?mode=edit&contact_id=321">edit</a>
및 스위치의 '모드'와 $ _GET 문
의 매개 변수를 얻거나 더 나은입니다 : 각 행은 더 나은 링크를하는 것입니다 내 테이블에서 연락처 목록 가질 수 :
<form method="POST" action="">
<input type="hidden" name="mode" value="edit"/>
<input type="hidden" name="contact_id" value="321" />
<input type="submit" name="submit" value="edit" />
</form>
나는 보안 관점 에서뿐만 아니라 기능 관점에 관심이 있습니다. 나는 비슷한 질문을 여기에서 찾았고 단 하나의 답을 얻은 단 하나만이 양식이 더 좋다고 말했다. 그것에는 아무런 설명도없고 4 개의 상향 조판이 없었다.
모든 정보는 크게 감사하겠습니다. 건배.
매우 유용합니다. 감사합니다. 좀 더 넓은 의미에서 생각하고 있다고 생각합니다. 나는 PDO와 prepared statement가 MySQL injection 공격으로부터 나의 코드를 보호하고 있다는 것을 알고 있으며, 나는 단지 내가 사용하고있는 폼을 사용하여 내가 알고 있지 않은 다른 익스플로잇으로부터의 공격에 대해서 공개적으로 열려 있지 않도록하고 싶다. 나는 스스로 가르치고 나의 지식은 약간 변덕 스럽다. 내 신청서는 https 사이트의 회원 증강 벽 뒤에 있습니다. – Almeister9
HTTPS가 슬픈 듯이 CSRF에서 사용자를 보호하지는 않지만 인증 토큰이 양식을 보호합니다. 준비된 문장은 ** 위대한 ** 예방 조치이지만, 데이터베이스 자체에 대한 [** 최소 권한 ** 원칙] (https://en.wikipedia.org/wiki/Principle_of_least_privilege)을 추가로 선택해야합니다. 또한 WikiHow에는 실제로 PHP/MySQLi 콤보를 다루는 [** 훌륭한 기사 **] (https://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL)가 있습니다. PDO에 쉽게 적용될 수있는 ** 톤 ** 측면 –