2008-11-24 32 views

Trả lời

17

Trên cả hai tên miền, đặt hình ảnh hoặc phần tử web khác được lấy từ miền khác. Sử dụng URL để thông báo cho miền khác mà người dùng X ở trên miền A và cho phép miền B liên kết ID người dùng đó với người dùng đó trên hệ thống của họ.

Đó là một chút phức tạp để thực hiện một cách chính xác, nhưng nếu bạn nghĩ rằng nó thông qua nó sẽ làm việc ra rất tốt.

Vinko chỉ ra trong nhận xét (cảm ơn!) Rằng tôi không nên cho rằng bạn đã hiểu rõ những rủi ro bảo mật liên quan. Nếu thông tin này có giá trị với bất kỳ ai, thì bạn nên đảm bảo bạn sử dụng mã hóa, xác thực, v.v. để tránh phát hành thông tin nhạy cảm và tránh các cuộc tấn công khác nhau (phát lại, người đàn ông ở giữa, v.v.). Điều này không quá nguy hiểm vì bạn kiểm soát cả hai trang web và bạn có thể chọn một khóa bí mật an toàn cho cả hai, vì giao tiếp chỉ đi giữa hai máy chủ thông qua URL đặc biệt này. Hãy ghi nhớ điều đó.

-Adam

+3

Bạn sẽ phải thêm một số mã hóa và tránh các cuộc tấn công phát lại. Bạn có thể làm điều đó bằng cách có A và B chia sẻ một bí mật. –

+0

Nó phụ thuộc. Nếu thông tin không có giá trị, thì không cần thiết, nhưng nếu bạn đang chia sẻ điều gì đó quan trọng thì bạn cần phải liên quan đến xác thực, mã hóa, v.v. khó có bí mật được chia sẻ. –

+0

Nó không khó, nhưng nó phải được xem xét. Và đừng quên biến những URI đó thành một lần duy nhất. –

1

Bạn không, cookie bị ràng buộc vào miền. Có những hạn chế về điều này và nó được gọi là kịch bản trang web chéo.

Bây giờ, để được trợ giúp cho vấn đề của bạn. Việc bạn có thể làm là tạo tập lệnh giúp kết nối chúng.

Bạn có thể viết lại toàn cầu tất cả các liên kết đến trang web thứ hai của bạn sẽ cần thông tin cookie từ trang web đầu tiên.

Bạn sẽ lưu tất cả cookie từ trang web-a vào cơ sở dữ liệu mà cả hai có thể đọc, sau đó lập trình thêm chuỗi truy vấn id cookie trên tất cả các liên kết đến site-b, sau đó bạn tra cứu id cookie đó và đặt cookie theo tên miền mới.

Có một thư viện trừu tượng cơ sở dữ liệu PHP thực sự tốt (PHP ADODB) và nó có một plugin chia sẻ phiên làm cho tất cả điều này dễ dàng hơn rất nhiều.

1

Vâng, nếu tên miền của bạn chỉ là các tên miền phụ khác nhau, bạn có thể thực hiện một cách dễ dàng bằng cách tạo một cookie .yourdomain.com. Sau đó, cookie được chuyển cùng với tất cả các yêu cầu trên tất cả các tên miền phụ.

Nó không đơn giản nếu bạn muốn chia sẻ cookie giữa các miền khác nhau vì trình duyệt coi đó là một nguy cơ bảo mật.

Ví dụ chính xác là gì?

Trong trường hợp một số phần mềm như Google Analytics và các hình ảnh theo dõi khác, v.v. bạn có thể bị buộc sử dụng P3P tiêu đề để cho trình duyệt biết bạn không quan tâm đến bảo mật khi gửi cookie. Sau đó, một trình duyệt yêu cầu hình ảnh nhận được một cookie như là một phần của phản ứng và cũng kiểm tra P3P. Nếu tất cả là OK, nó sẽ lưu cookie trên ổ đĩa cứng và lần sau khi bạn yêu cầu một hình ảnh trên trang web của bạn (nhưng là một phần của trang tên miền khác), trình duyệt sẽ gửi cookie cùng. Nhưng tôi đoán điều này không giúp ích ;-)

Tôi chưa bao giờ sử dụng giá trị cookie trên các tên miền theo nghĩa trực tiếp của nó.

1

Tôi không chắc chắn về các tác động bảo mật, nhưng có cài đặt Apache cho phép bạn thay đổi miền của cookie.

# in httpd.conf (or equivalent) 
php_value session.cookie_domain mydomain.com 

Tôi đã thành công khi sử dụng phương pháp này cho tên miền phụ, nhưng chưa bao giờ cố gắng cho các miền khác nhau.

Ngoài ra còn có một phương pháp để đặt hướng biến trong PHP được mô tả tại http://us.php.net/manual/en/function.session-set-cookie-params.php. Tài liệu không đưa ra tham chiếu đến khả năng hoặc không có khả năng đặt cookie trên một tên miền khác.

Có một khác nhau Stack Overflow thread về cùng chủ đề này, nhưng tôi không nghĩ rằng nó đã từng được trả lời đầy đủ.

3

Nếu bạn có hai trang web bằng cách sử dụng cùng một tên miền và muốn chia sẻ các tập tin cookie giữa chúng, thiết lập một cái gì đó như thế này trong tập tin settings.php của bạn cho mỗi tên miền: ''

ini_set('session.cookie_domain', '.EXAMPLE.com'); 

Hãy chắc chắn bạn bao gồm hàng đầu trước tên miền, hoặc nó sẽ không hoạt động.

Điều này cho phép người dùng duy trì trạng thái đăng nhập giữa bất kỳ trang web nào được định cấu hình cho cookie trên toàn miền.

Điều này cũng có thể có tác dụng phụ tiêu cực, do đó, đừng làm điều này trừ khi bạn quen thuộc với tất cả cookie liên quan đến các trang web bạn muốn chia sẻ cookie.

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