2012-05-17 33 views
8

Tôi nghi ngờ mình sẽ cảm thấy thực sự ngu ngốc sau khi đăng bài nhưng ở đây sẽ xảy ra. Tôi có hai câu hỏi chính:Định dạng id đăng ký c2dm Android

1) Regex thích hợp để sử dụng cho id đăng ký là gì? Hiện tại tôi có những nội dung sau nhưng tôi chưa thể tìm thấy bất kỳ tài liệu nào để hỗ trợ cho dù điều này là đủ:

'/^[a-z0-9_-]{40,255}$/i' 

2) Có "hợp lệ" để chứa regID "-" không? Tôi biết rằng android không thể đi lo lắng về những gì mọi ngôn ngữ - trong trường hợp này mysql - sử dụng cho ý kiến, vv nhưng điều này khiến tôi một chút mất cảnh giác. Đến thời điểm này tôi đã luôn luôn gắn cờ rằng trong khử trùng của tôi (s) vì khả năng được sử dụng cho tiêm sql.

+1

Giống như Seva Alekseyev cho biết, định dạng ID đăng ký C2DM có thể thay đổi bất kỳ lúc nào, vì vậy việc sử dụng regex cho điều này sẽ không nhất thiết phải là giải pháp tốt nhất. Nếu lo lắng duy nhất của bạn là lưu trữ trong MySQL, không cần phải thực hiện xác nhận này. Thay vào đó hãy xem xét ['mysqli_prepare()'] (http://php.net/manual/en/mysqli.prepare.php) hoặc ['mysqli_real_escape_string()'] (http://php.net/manual/en/mysqli .real-escape-string.php) cho các câu lệnh MySQL của bạn để tránh việc tiêm SQL. Cá nhân tôi thích 'mysqli_prepare()' trên 'mysqli_real_escape_string()'. – ohaal

+0

Tôi nghĩ bạn có câu trả lời tốt nhất có thể bạn cần chấp nhận nó –

+0

@dilip - Xin lỗi, tôi đã đi vắng. Đã chấp nhận – malonso

Trả lời

12

Định dạng của ID đăng ký là chi tiết triển khai. Google có thể thay đổi nó bất kỳ lúc nào mà không cần thông báo. Tại sao bạn muốn xác nhận nó? Nếu lưu trữ trong MySQL là một mối quan tâm, sử dụng mysql_real_escape_string() chỉ trong trường hợp, hoặc mysqli :: real_escape_string() với mysqli trên PHP, hoặc các tham số.

Giống như tên của mọi người. Bạn có thể nghĩ rằng đó là tất cả chữ cái, sau đó O'Neil đến cùng. Thoát nó chỉ trong trường hợp.

+0

Chính xác. Thoát khỏi đầu vào đúng cách và không có SQL injection phải lo lắng. – Qtax

Các vấn đề liên quan