2010-06-19 7 views
9

Tôi đang cố viết một trang web có tài khoản người dùng. Không có nhiều thông tin nhạy cảm khác với mật khẩu và địa chỉ email. Nhưng tôi không thực sự hiểu những gì tôi đang làm; Tôi đang hack nó khi tôi đi. Có điều gì tôi cần phải lưu ý đối với an ninh hoặc bất kỳ chi tiết quan trọng nào khác không?Tạo trang web có tài khoản người dùng, tôi cần ghi nhớ điều gì?

Trả lời

1

Bạn PHẢI sử dụng chức năng MD5 php cho mật khẩu. Cách đơn giản để bảo vệ nó. Ngoài ra hãy chắc chắn rằng bạn sử dụng strip_tags trong php để ai đó không thể thực hiện các lệnh trong hộp nhập liệu của bạn. Vì không có bất kỳ dữ liệu nhạy cảm nào, tôi không nghĩ bạn cần mã hóa bất cứ thứ gì. Chỉ cần chắc chắn hệ thống đăng nhập là hoàn hảo và người dùng không có cách nào khác để truy cập vào dữ liệu mà không đăng nhập ..

shud đủ cho một kịch bản đăng nhập cơ bản ..

+4

"Bạn PHẢI sử dụng chức năng php MD5" => trong khi đó là khuyến khích để băm mật khẩu, md5() là hầu như không có cách duy nhất ... – Wrikken

+1

trên thực tế, bạn PHẢI KHÔNG sử dụng MD5 cho băm mật khẩu, mà là một cái gì đó chậm hơn và được thiết kế cho mật khẩu, như BCRYPT hoặc thậm chí SCRYPT. – Ethan

3

Sử dụng JanRain Engage (formerly rpxnow.com) để xác thực. Giải pháp của họ cho phép mọi người sử dụng thông tin đăng nhập hiện có của họ từ Google, Yahoo, Microsoft, Facebook và những người khác để đăng nhập vào trang web của bạn. Nhiều nhà cung cấp trong số này sẽ cung cấp cho OpenID hợp lệ và thường là một địa chỉ email hợp lệ như một phần của quá trình xác thực.

Nếu bạn sử dụng JanRain, bạn chỉ phải lưu trữ địa chỉ email hoặc OpenID cho người dùng và bạn không phải lưu mật khẩu hoặc mật khẩu băm. Hơn nữa, bạn không phải thực hiện bất kỳ chức năng đặt lại mật khẩu nào hoặc "quên mật khẩu của tôi". Ngoài ra, chức năng đăng ký người dùng của bạn có thể nhỏ hơn nhiều vì bạn bắt đầu với địa chỉ email hợp lệ hoặc OpenID do chủ sở hữu cung cấp.

Giao tiếp giữa ứng dụng của bạn và JanRain được xác thực và mã hóa, vì vậy tất cả đều tốt đẹp & an toàn.

+1

Đúng nhưng cũng nhớ rằng OpenID cũng có thể có những bất lợi. Xem http://stackoverflow.com/questions/410085/what-reasons-are-there-not-to-use-openid để có cuộc trò chuyện thú vị về vấn đề đó. – nico

+1

Khi tôi nói OpenID, tôi có nghĩa là phiên bản của JanRain Engage của nó. Họ sử dụng OpenID dưới bìa, và người dùng không bao giờ phải nhìn thấy nó. Người dùng chỉ thấy userid và mật khẩu mà họ biết từ Goog/Yahoo/MS/FB et al. Và bạn không bao giờ phải nhập userid và mật khẩu của mình vào bất kỳ trang nào ngoại trừ trang đăng nhập của nhà cung cấp danh tính. –

+0

Điều này thực sự có thể là những gì tôi sẽ kết thúc bằng cách sử dụng. Cảm ơn bạn đã cho tôi thấy điều này. – DavidR

4

Sarfraz Ahmed đã đưa ra một số tài nguyên tốt để đọc. Bạn cũng có thể sử dụng một lớp PHP để xác thực người dùng, có rất nhiều. Bản thân tôi đã tạo một dự án có tên là userFlex trên sourceForge http://uflex.sourceforge.net

userFlex có tài liệu phong nha và không chỉ là người dùng đăng nhập; nó đăng ký và xác thực trường, đặt lại mật khẩu, mã xác nhận để đăng ký, xử lý các phiên và nhiều hơn nữa như autologin.

Một lần nữa, chỉ cần đưa người dùng lên làm ví dụ, bạn cũng có thể xem xét http://www.phpclasses.org/browse/file/5269.html hoặc nhiều Lớp học tốt khác trong PHPclasses.org.