jquery ajax
을 사용하는 동안 여러 번 이상한 일을합니다. 내 말은, 나는 id
을 포함하는 숨겨진 변수를 유지하고 어떤 사람이 button
을 클릭하면 id
과 함께 ajax 요청을 전달하는 javascript 함수를 실행합니다. hidden field
에 포함되어 있습니다. 이게 정상인가? 누군가 firebug
또는 그와 같은 도구를 사용하고 javascript
함수를 변경하고 다른 ids
을 전달하면 어떻게 될까요? 해당 사용자가 아닌 다른 레코드를 업데이트하고 삭제합니다. 어떻게이 모든 일을 처리합니까?jquery에서 누군가 내 아약스 요청을 해킹 할 수 있습니까?
답변
이 서버 쪽을 보호하려면이 필요합니다. 클라이언트 쪽에서는 보호 할 수 없으며 그렇게 할 수도 없습니다.
JavaScript는 볼 수 있고, 실행 가능하며, 동적이며, 개방적입니다 ... 할 때 원하는 것은 모두 ... 음, 무엇이든지간에은 보안을 위해 매우 나쁜 것입니다. 요청을 처리 할 때 사용자가 서버에서 액세스해야하는 것에 대해 전달 된 ID를 확인해야합니다.
아무거나는, 당신이 클라이언트에서 수행아무 의미하고 억지력 아닌 솔루션, 그리고 정말 내가 본 효과적인 자바 스크립트 방어벽이 없습니다. 이 일 수 있다고하더라도 Firebug, Fiddler, Wireshark, Chrome 콘솔 또는 12 개의 다른 도구 중 하나를 열어서 요청이 궁극적으로 어쨌든 전송되는지 확인하십시오.
사용자의 입력을 신뢰하지 마십시오. 서버의 ID를 확인하십시오.
데이터를 제출할 때 항상 서버 측의 입력을 확인해야합니다. 예를 들어 사용자가 사이트에서 자신의 프로필을 편집하는 중이면 숨겨진 변수에 프로필 ID를 넣지 않고 데이터를 제출할 때 사용자 쿠키/세션을 기반으로 프로필 ID를 파생시킵니다. 핵심 문구는 절대로 클라이언트를 신뢰하지 않습니다.
안녕하세요, Fosco, 제가 잡았습니다. 그리고 그것이 하나의 기록 일 때만 나는 그것을하고 있습니다. 10 개의 레코드가있는 페이지에 테이블이 표시되면 어떨까요? 사용자가 자신의 앨범이므로 해당 앨범을 편집 할 수있는 권한이 있다고합니다. 이제이 앨범에는 자체 앨범 ID가 있습니다. 어떻게 처리할까요? 나는 모든 앨범 ID를 세션에 버리고 제출하는 동안 앨범 ID를 확인해야합니까? 테이블이 필요한 경우가 많이 있습니다. 세션에서 각 인스턴스에 해당 ID를 모두 넣어야합니까? 그렇다면 세션에 언제 넣어야합니까? 그가 로그인하는 순간? 본질적으로 내가 불필요한 조인을해야한다는 것을 의미합니다 ... – TCM
사용자가 로그인 할 때 필요하지 않습니까? 나는 분명히 희망한다. 내가 명확하지 않은 경우 알려주십시오. – TCM
'his'인 앨범을 표시 할 수 있다면 양식 제출시 'his'이라고 판단 할 수 있습니다. 이 작업을 수행하기 위해 세션에 별도의 항목을 저장할 필요가 없습니다. – Fosco
현재 사용자가 현재 사용자 및 컨텍스트를 기반으로 작업을 수행 할 권한이 있는지 확인하려면 서버 측 유효성 검사를 수행해야합니다. 앞에서 언급했듯이 유효한 자격 증명을 가진 사람은 전달 된 값을 수정할 수 있습니다. 코드를 수정할 필요가 없으며 정확한 쿠키 정보가 있으면 원하는 값을 포함하는 요청을 간단하게 만들 수 있습니다.
- 1. jQuery에서 아약스 put 요청을 보내는 방법
- 2. 내 .ini 파일을 해킹/수정할 수 있습니까?
- 3. 내 양식이 해킹 될 수 있습니까?
- 4. 웹 양식을 해킹 할 수 있습니까?
- 5. 아이폰 앱을 어떻게 해킹 할 수 있습니까?
- 6. codeigniter 세션을 해킹 할 수 있습니까?
- 7. 누군가 내 rakefile 구문을 볼 수 있습니까?
- 8. 누군가 내 자바 스크립트를 보지 못하게 할 수 있습니까?
- 9. 하스켈의 오일러 문제 - 누군가 내 오류를 발견 할 수 있습니까?
- 10. SSL을 사용하면 해커가 내 세션 변수를 해킹 할 수 없습니까?
- 11. jQuery에서 Ajax 요청을 캐싱하지 않았습니다.
- 12. 누군가 Gtk2 포장을 설명 할 수 있습니까?
- 13. 누군가 Microsoft Unity를 설명 할 수 있습니까?
- 14. 누군가 나를 스크립트로 안내 할 수 있습니까?
- 15. 누군가 이것을 C로 이식 할 수 있습니까?
- 16. 누군가 ja_JP.UTF8을 설명 할 수 있습니까?
- 17. 누군가 UIAlertView의 차이점을 설명 할 수 있습니까?
- 18. jQuery에서 아약스 메시지 텍스트를 커스터마이즈하는 방법이 있습니까?
- 19. 누군가가 SQL Server 2005 암호화 스택을 해킹 할 수 있습니까?
- 20. 어떻게 jQuery에서 내 자신의 이벤트를 정의 할 수 있습니까?
- 21. 내 서버가 범위 요청을 지원하는지 어떻게 테스트 할 수 있습니까?
- 22. 아약스 및 jquery에서 serializearray 추가
- 23. 자바 스크립트에서 모든 아약스 요청을 어떻게 잡을 수 있습니까?
- 24. ajax 응답에서 jquery ajax 요청을 할 수 있습니까?
- 25. jQuery에서 ajax 요청을 일괄 처리하는 방법은 무엇입니까?
- 26. jQuery를 사용하여 완료되는 '모든'아약스 요청을 어떻게 발견 할 수 있습니까?
- 27. jQuery에서 '%'& 'px'를 인식 할 수 있습니까?
- 28. 내 요청을 처리하는 서버가 언제 내 프로그램에서 알 수 있습니까?
- 29. jquery에서 나를 위해 탭을로드 할 수 있습니까?
- 30. 누군가 내게 풀 요청을 보냈습니다. 어떻게해야합니까?
그래서 이것은 xmlHttpRequests를 전송하는 안전한 방법이 없다는 것을 의미합니까? – adardesign
@adardesign - * 보내는 SSL *, 예를 들어 SSL ... * 보내는 사람, 아니요, 클라이언트가 거기에 무엇이든 쑤셔 넣을 수 있으며 JavaScript에서하는 일을 바꿀 수 있습니다. 당신의 의견을 결코 믿지 마십시오. 확인하십시오 :) –