Tôi đã có một trang web PHP hoàn toàn tùy chỉnh với rất nhiều cuộc gọi cơ sở dữ liệu. mã dưới đây xuất hiện trong hàng chục trang PHP tôitiêm tấn công (Tôi nghĩ rằng tôi đã được bảo vệ!) <? Php/**/eval (base64_decode (ở khắp mọi nơi
<?php /**/ eval(base64_decode(big string of code....
tôi đã khá cẩn thận về các cuộc gọi SQL của tôi và như vậy, họ đang tất cả ở định dạng này:.
$query = sprintf("UPDATE Sales SET `Shipped`='1', `Tracking_Number`='%s' WHERE ID='%s' LIMIT 1 ;",
mysql_real_escape_string($trackNo),
mysql_real_escape_string($id));
$result = mysql_query($query);
mysql_close();
Đối với hồ sơ , Tôi hiếm khi sử dụng mysql_close()
vào cuối mặc dù đó chỉ xảy ra là mã tôi nắm lấy.Tôi không thể nghĩ ra bất kỳ nơi mà tôi d không sử dụng mysql_real_escape_string()
, (mặc dù tôi chắc chắn có thể có một cặp vợ chồng. Tôi sẽ sớm tìm kiếm để tìm hiểu). Cũng không có nơi nào người dùng có thể đặt trong HTML tùy chỉnh hoặc bất kỳ thứ gì. Trên thực tế, hầu hết các trang có thể truy cập người dùng, nếu họ sử dụng các cuộc gọi SQL, hầu như chắc chắn là SELECT * FROM
các trang sử dụng GET hoặc POST, tùy thuộc.
Rõ ràng là tôi cần tăng cường bảo mật, nhưng tôi chưa bao giờ có một cuộc tấn công như thế này và tôi không tích cực những gì tôi nên làm. Tôi đã quyết định đặt giới hạn cho tất cả các yếu tố đầu vào của mình và xem xét xem liệu tôi có bị mất một số mysql_real_escape_string
ở đâu đó không. Bất kỳ ai khác có bất cứ đề nghị?
Ngoài ra, loại mã này làm gì? Tại sao nó lại ở đó?
Sản lượng đó có ở đầu ra của tập lệnh PHP của bạn hoặc trong chính tệp không? – Gumbo
Đó là tất cả trong các tập tin ... – Cyprus106
Nếu nó nằm trong các tệp thì đó không phải là tệp SQL injection. Bằng cách nào đó các tệp PHP của bạn đã bị xâm phạm. –