Tôi có biểu mẫu liên hệ HTML được điều khiển bằng PHP trên trang web của mình. Hiện tại tôi sử dụng hàm PHP mail(). Do đó, tôi phải thực hiện nhiều xác thực nhập của người dùng để tránh email header injection attacks. Tôi nghĩ rằng tôi là an toàn, nhưng tôi có thể quên một cái gì đó và tôi muốn di chuyển đến một thư viện email PHP rắn. Thư viện tôi đã chọn là Swiftmailer.Biểu mẫu liên hệ HTML định hướng PHP có an toàn bằng Swiftmailer có an toàn không?
Bây giờ tôi muốn kiểm tra xem Swiftmailer giải quyết như sau:
- Loại bỏ hoặc thoát
<
và>
ký tự trong tên người gửi. - Xóa các dòng mới (
\n
,\r\n
...) từ tên người gửi. - Xóa hoặc thoát khỏi dòng mới khỏi chủ đề email.
- Bình thường hóa dòng mới trong nội dung thư (nội dung của email). Theo tài liệu PHP,
\n
nên được sử dụng trong nội dung và\r\n
làm dấu phân tách tiêu đề email.
PS: Tôi đã cố gắng liên hệ với nhóm Swiftmailer với các câu hỏi của mình mà không thành công nên tôi đang cố gắng tại đây.
Edit:
tôi đã làm một số trường hợp thử nghiệm với Swiftmailer và đây là những gì tôi tìm thấy cho đến nay:
- Khi bạn có một
<
hoặc>
trong tên của một người gửi, bạn sẽ có được a Không thể gửi được thư lỗi email. Điều này một phần có thể dẫn đến một máy chủ thư của bạn (có thể tôi sai) trong DOS attack. Điều này có bình thường không ?! - Các dòng mới được thoát để tấn công tiêm không thành công.
- Các dòng mới được thoát để tấn công tiêm không thành công.
- Đã kiểm tra nhưng tôi không thể xem Swiftmailer làm gì (nếu có điều gì đó). Vì vậy, tôi vẫn còn trong bóng tối ở đây.
Ai đó có thể làm rõ # 1 và # 4 cho tôi không? Tôi không chắc đó có phải là hành vi bình thường hay không ...
Bạn luôn có thể xem xét thông qua các mã ...Swiftmailer chỉ là một kịch bản PHP, sau khi tất cả. Nếu bạn hoang tưởng về các lỗ hổng, bạn có thể muốn kiểm tra bất kỳ thư viện bên ngoài nào. –
'Bảo vệ khỏi tấn công tiêu đề mà không tước nội dung dữ liệu yêu cầu' (từ trang chủ) và từ quét thô thông qua mã tôi giả định rằng nếu bạn chuyển bất kỳ thứ gì không hợp lệ, bạn sẽ nhận được ngoại lệ thay vì chấp nhận im lặng . – hakre
Dường như bạn có dải \ n và \ r từ bất kỳ tiêu đề nào được người dùng gửi và wordwrap ($ message, 70), bạn sẽ không sao. thỏa thuận với việc tước < and > từ tên người gửi là gì? Tôi sẽ rất quan tâm để biết loại hack các ký tự này để bạn mở. Bất kỳ thông tin được đánh giá rất cao. – dqhendricks