Tôi vừa gặp một nhà phát triển đã thêm vào trước mỗi bảng và tên cột trong cơ sở dữ liệu MYSQL của mình bằng dấu gạch dưới (ví dụ: _users, _name, _active). Khi tôi đặt câu hỏi về thực tế, ông nói rằng điều này giúp ngăn chặn các cuộc tấn công SQL injection - tôi chưa bao giờ đi qua thực hành/lời khuyên này trước đây. Nó giúp ngăn chặn các cuộc tấn công SQL injection như thế nào?Làm cho bảng cơ sở dữ liệu SQL khó đoán và tên cột giúp ngăn chặn việc tiêm SQL?
Trả lời
No.
Suy nghĩ của anh ấy "Nếu kẻ tấn công không biết tên bảng của tôi thì kẻ tấn công không thể gây rối với họ". Tuy nhiên, bạn vẫn dễ bị tấn công SQL injection, và kẻ tấn công vẫn có thể gây ra các cuộc gọi hệ thống tùy ý, có lẽ là các bảng hệ thống nổi tiếng. Điều gì nếu anh ta thêm một số mã SQL gây ra các truy vấn rất dài đối với một bảng hệ thống mà bogs xuống máy chủ của bạn?
Bảo mật thông qua sự tối tăm là hoàn toàn không có bảo mật.
+1 để đề cập đến các bảng hệ thống. Nếu kẻ tấn công không biết tên của con chó con của bạn là gì, nhưng có thể xóa hoặc làm hỏng toàn bộ cơ sở dữ liệu của bạn, điều đó có quan trọng không? (Ok, đối với thông tin nhạy cảm, như thông tin thẻ ngân hàng, nó có thể ...). Chưa kể, bằng cách truy vấn siêu dữ liệu, người ta có thể dễ dàng giải mã lược đồ _clever_ này ... – ppeterka
Cảm ơn bạn đã làm rõ Andy (và báo giá apt). Tôi đã không nghĩ đến các bảng hệ thống! – foiseworth
Cũng đáng để chỉ ra rằng việc đổi tên các bảng từ 'user' thành' _user' không phải là một thay đổi rất khó cho kẻ tấn công để thử, đặc biệt là vì kẻ tấn công có lẽ là một chương trình chứ không phải con người. Nó có ý nghĩa như thay đổi mật khẩu của bạn từ 'password' thành' passw0rd' và suy nghĩ "No attacker will know!" –
_this
, _
đây không có liên quan đến an ninh, với điều đó nó có thể được dễ bị tổn thương
Tốt đọc
+1 để liên kết câu trả lời tuyệt vời này. – BernaMariano
- 1. Ngăn chặn việc tiêm SQL trong một lớp cơ sở dữ liệu
- 2. Delphi - ngăn chặn việc tiêm SQL
- 3. Làm cách nào để đổi tên một cột trong bảng cơ sở dữ liệu bằng SQL?
- 4. Cập nhật bảng cơ sở dữ liệu từ một bảng cơ sở dữ liệu SQL Server sang bảng cơ sở dữ liệu SQL Server khác?
- 5. Đặt tên cột boolean trong bảng cơ sở dữ liệu
- 6. ngăn chặn tiêm sql trong oracle "order by" part
- 7. Đặt tên bảng và bảng cơ sở dữ liệu
- 8. Đa hình trong các bảng cơ sở dữ liệu SQL?
- 9. Cách lưu trữ hình ảnh trong các bảng cơ sở dữ liệu SQL Server cột
- 10. Tạo tập lệnh SQL cho dữ liệu của cơ sở dữ liệu của tôi (SQL SERVER)
- 11. Đổi tên tên cột trong cơ sở dữ liệu postgresql
- 12. Vệ sinh tên bảng/cột trong SQL động trong .NET? (Ngăn chặn các cuộc tấn công SQL injection)
- 13. Cấu trúc cơ sở dữ liệu SQL
- 14. ước đặt tên cho các bảng và cột trong cơ sở dữ liệu
- 15. Thả cơ sở dữ liệu SQL Server
- 16. Làm thế nào để bạn ngăn chặn việc tiêm SQL trong các ứng dụng LAMP?
- 17. Trình nghe WebSocket cho Cơ sở dữ liệu Microsoft SQL
- 18. Làm cách nào để tìm kiếm cơ sở dữ liệu mysql cho tên cột cụ thể
- 19. Staging cơ sở dữ liệu khó khăn
- 20. Django - Cách ngăn chặn việc tạo ràng buộc khóa ngoại vi cơ sở dữ liệu
- 21. Truy vấn SQL để tìm tất cả các bảng trong cơ sở dữ liệu có cột có tên cụ thể
- 22. Nhận cơ sở dữ liệu SQL Server Cross Phụ thuộc
- 23. Bí danh cơ sở dữ liệu chéo của SQL Server
- 24. Tránh con trỏ cơ sở dữ liệu trong SQL Server
- 25. Cần một số trợ giúp làm việc với cơ sở dữ liệu trong C#
- 26. Làm cách nào để ngăn chặn chèn dữ liệu trùng lặp vào bảng SQL Server?
- 27. Cách tìm số cột của bất kỳ bảng nào trong bất kỳ cơ sở dữ liệu nào từ cơ sở dữ liệu chủ của máy chủ sql?
- 28. Cách chuyển đổi cơ sở dữ liệu Visual Foxpro sang cơ sở dữ liệu SQL Server
- 29. SQL - tạo cơ sở dữ liệu và các bảng trong một tập lệnh
- 30. Sao chép các bảng từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong SQL Server
Điều duy nhất tôi có thể nghĩ rằng nó sẽ giúp chống lại là nếu kẻ tấn công đang cố gắng đoán tên bảng. Nhưng với vệ sinh thích hợp của các đầu vào cơ sở dữ liệu, nó hoàn toàn không cần thiết. Tất cả nó sẽ làm là gây nhầm lẫn devs của bạn. – Travesty3
Hy vọng bạn sẽ chia sẻ trang này với anh ấy. – MikeSmithDev
Paranoid Dev? Có thể, có thể không. Dev không chịu thua? Rất có khả năng. – MatBailie