Hướng dẫn php sanitize $_get parameters - thông số php sanitize $ _get
0 Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm. Tôi biết dữ liệu nên được vệ sinh khi nó được xuất ra hoặc hiển thị, không phải khi nó được nhận hoặc lưu trữ. Đây là những gì tôi đang làm bây giờ:
Nếu tôi sẽ nhận được các tham số $ _GET và kiểm tra cơ sở dữ liệu cho chúng, tôi có còn vệ sinh và thoát không? Ví dụ:
Vậy
Dharman ♦♦ 28.1K21 Huy hiệu vàng75 Huy hiệu bạc127 Huy hiệu đồng21 gold badges75 silver badges127 bronze badges Đã hỏi ngày 8 tháng 2 năm 2019 lúc 0:06Feb 8, 2019 at 0:06
2 PDO làm cho nó thậm chí còn dễ dàng hơn bạn đã làm:
Đó là nó. Xong. Điều quan trọng là bạn không thoát khỏi mọi thứ khi sử dụng các giá trị giữ chỗ, đặc biệt là khi kết hợp. Nếu ai đó có một cái tên như "A & W" thì khi bạn tìm kiếm, bạn sẽ xử lý đầu vào và thực sự tìm kiếm "A & amp; W", đó không phải là tên của họ. Họ sẽ nhận được các trận đấu bằng không và sau đó họ sẽ hỏi bạn điều gì sai với trang web của bạn. Điều duy nhất bạn nên làm với dữ liệu đầu vào là cắt ra bất kỳ ký tự nào có thể can thiệp vào việc khớp tìm kiếm, như không gian dẫn đầu và dấu vết mà ai đó có thể đã vô tình giới thiệu. Đã trả lời ngày 8 tháng 2 năm 2019 lúc 0:29Feb 8, 2019 at 0:29
Tadmantadmantadman 203K22 Huy hiệu vàng230 Huy hiệu bạc255 Huy hiệu Đồng22 gold badges230 silver badges255 bronze badges Không sử dụng PHP có một loạt các lối thoát khó hiểu -
Những gì thường tốt nhất khi lưu trữ văn bản vào bảng MySQL, là thoát khỏi chuỗi chỉ đủ để vượt qua trình phân tích cú pháp. Điều này trốn thoát biến mất khi quá trình xử lý xảy ra. Để lại các ký tự có dấu, vv một mình.
PDO của PHP và MySQLI có cách "ràng buộc" thực hiện tất cả công việc cho bạn. Nếu, thay vào đó, bạn sử dụng "nội suy" của PHP, chẳng hạn như
Bạn không được thoát và không có bảo vệ tiêm SQL. Không viết mã theo cách đó trừ khi bạn đã bằng cách nào đó đã kiểm tra Args. Đối với HTML, bạn cần một bộ Escapers khác. Hãy suy nghĩ về 7. Điều này giới thiệu một thẻ. Vậy làm thế nào để bạn hiển thị một "ít hơn"? Vâng, bạn cần "thực thể HTML" cho nó: 8. Điều đó sau đó dẫn đến 9 là vấn đề; Do đó 0.Đã trả lời ngày 8 tháng 2 năm 2019 lúc 0:31Feb 8, 2019 at 0:31
Rick Jamesrick JamesRick James Huy hiệu vàng 128K1111 gold badges122 silver badges205 bronze badges 1
Không, nó không cần thiết. Giữ dữ liệu đầu vào như là, bất khả tri đến phương tiện đầu ra. Nó không nên được chuẩn bị cho việc nhúng HTML an toàn. Điều gì sẽ xảy ra nếu ngày mai bạn sẽ cần dữ liệu này ở định dạng JSON cho một số API, PDF hoặc ứng dụng máy tính để bàn? Đã trả lời ngày 8 tháng 2 năm 2019 lúc 10:15Feb 8, 2019 at 10:15
MarcodormarcodorMarcodor 3.52018 Huy hiệu bạc22 Huy hiệu đồng18 silver badges22 bronze badges Bạn vẫn nên xác nhận đầu vào cho mục đích toàn vẹn dữ liệu, ví dụ: đảm bảo rằng đầu vào ít nhiều là những gì bạn mong đợi vì sự ổn định của ứng dụng. Tuy nhiên, vì bạn đang sử dụng các câu lệnh đã chuẩn bị, bạn không có bất kỳ nhu cầu cấp thiết nào để "vệ sinh" [hay còn gọi là "tham nhũng"] dữ liệu của bạn vì nó đang được trình điều khiển cơ sở dữ liệu đóng gói chặt chẽ hơn.
Đã trả lời ngày 8 tháng 2 năm 2019 lúc 0:33Feb 8, 2019 at 0:33
SammitchsammitchSammitch 28.3K7 Huy hiệu vàng46 Huy hiệu bạc75 Huy hiệu Đồng7 gold badges46 silver badges75 bronze badges |