Tôi muốn chuyển một địa chỉ e-mail từ một biểu mẫu web sang tập lệnh bash. Tôi đang sử dụng regex sau:
/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/
Điều này có đủ không? Hoặc người ta có thể nhúng một khai thác?
Kịch bản được gọi từ PHP:
system('/usr/local/bin/script.sh "$email"');
4
Làm tốt ngay cả khi hỏi. Tôi không thấy bất kỳ tiềm năng khai thác nào nhưng bạn có thể từ chối một số địa chỉ email hợp lệ và chấp nhận một số địa chỉ email không hợp lệ. Oh và bạn nên neo regex của bạn .
—
tự đại diện
@Wildcard Thật vậy, việc thiếu neo khiến cho regrec trở nên vô dụng như một bài kiểm tra bảo mật!
—
Gilles 'SO- ngừng trở nên xấu xa'
Đây có thể là một địa chỉ email hợp lệ
—
roaima
"the doctor"@gallifrey.com
. Lưu ý không gian được trích dẫn trong thành phần tên người dùng.
tại điểm nào bạn lo lắng về một khai thác? Dòng tiêu đề nói 'bash', do đó, mối quan tâm về việc mở rộng trong khi chuyển email $ dưới dạng đối số (được trích dẫn) cho script.sh hoặc xử lý giá trị đã qua của script.sh hoặc tính nghiêm ngặt của (có lẽ dựa trên PHP ) regex, hay ???
—
Jeff Schaller
Không rõ làm thế nào regrec được sử dụng trong tập lệnh của bạn. Để phân tích tốt, vui lòng cung cấp các phần có liên quan của tập lệnh của bạn.
—
jofel