Làm thế nào để xác minh rằng ai đó sở hữu một trang web?


10

Tôi đang cố gắng nghĩ cách để bảo mật nhất có thể, xác minh rằng người dùng sở hữu một trang web mà họ tuyên bố sở hữu.

Dưới đây là một số cách tôi đã thấy:

  • Tải lên tệp HTML có tên khó hiểu vào thư mục gốc với nội dung đã cho
  • Bao gồm thẻ meta hoặc nhận xét khác ở đâu đó trong nguồn trang chủ
  • Gửi email đến một địa chỉ @domainwearetryingtovalidate.tldcó liên kết xác minh
  • Kiểm tra bản ghi CNAME hoặc TXT
  • Kiểm tra hồ sơ WHOIS
  • Xác thực về mặt vật lý bằng cách gọi điện thoại hoặc gửi email cho đường dây hỗ trợ, cập nhật hồ sơ theo cách thủ công

Và đây là những vấn đề với các phương pháp đó, theo thứ tự:

  • Một số cấu hình trang web có thể không cho phép chỉ cần tải tệp lên thư mục gốc
  • Thiết kế trang web kém có thể cho phép người dùng của trang web đó tự thêm thẻ meta này
  • Các trang web cung cấp dịch vụ email làm cho điều này trở nên vô dụng; lấy gmail.comví dụ
  • Điều đó quá phức tạp đối với hầu hết các chủ sở hữu trang web nhỏ để tìm ra cách làm
  • Đó là công khai; bất cứ ai cũng có thể tự xưng là bất cứ ai. Chưa kể hầu hết thường không chính xác.
  • Lãng phí thời gian

Có cách nào khác để xác minh rằng người dùng trên trang web của bạn sở hữu một trang web cụ thể không? Trong số các phương pháp tôi liệt kê, phương pháp nào là tốt nhất và tồi nhất? Tôi đã ra lệnh cho họ từ tốt nhất đến tồi tệ nhất theo quan điểm của riêng tôi, nhưng tôi muốn xem những gì người khác nghĩ là tốt.

Tôi có kế hoạch thực hiện một hoặc nhiều trong số này trong PHP.


3
Đây chắc chắn là một câu hỏi lập trình. Nếu nó có nghĩa là trên webmaster, tôi sẽ đặt nó ở đó.

Đối với một giải pháp tự động, bạn bị mắc kẹt với những gì bạn đã liệt kê. Các công ty lớn khác (ví dụ Google) sử dụng một trong bốn tùy chọn đầu tiên. Tôi thấy thật bất thường khi người dùng không thể thực hiện một trong bốn điều đầu tiên.

1
@ rlb.usa Sẽ là một câu hỏi cho các quản trị web nếu tôi hỏi cách thêm bản ghi CNAME vào tên miền của mình để xác minh rằng tôi sở hữu nó cho một dịch vụ cụ thể

2
Tôi nghĩ rằng vấn đề đầu tiên bạn phải giải quyết là quyết định: "sở hữu" một trang web có nghĩa là gì? Là một quản trị viên? Có quyền truy cập vào hệ thống tập tin? Có quyền sở hữu hợp pháp? Có một nhiệm vụ bảo trì bằng cách thỏa thuận bằng văn bản hoặc nói? Thanh toán hóa đơn lưu trữ? Thanh toán hóa đơn tên miền? Trả tiền cho các nhà thiết kế?
Các cuộc đua nhẹ nhàng trong quỹ đạo

1
@ Cyclone: ​​Tôi đang làm việc cho bạn miễn phí, bởi thực tế là tôi hoàn toàn lãng phí thời gian của mình để đóng góp cho câu hỏi này.
Các cuộc đua nhẹ nhàng trong quỹ đạo

Câu trả lời:


8

Tôi chắc chắn nghĩ rằng

  • Tải lên tệp html có tên khó hiểu vào thư mục gốc với nội dung đã cho

là cách tốt nhất để đi Tôi thực sự đã phải làm điều này một lần. Và tôi không nghĩ rằng nhiều cấu hình trang web ngăn bạn làm điều này.

Nếu bạn thực sự lo lắng về điều này, tại sao không cho phép tất cả các tùy chọn (an toàn)?


Về bình luận của bạn:

Có nhưng với các hệ thống MVC (chẳng hạn như codeigniter), có thể gặp rắc rối khi tìm ra cách truy cập tệp vật lý không phải là một phần của hệ thống chính

Trong những trường hợp hiếm hoi này , hãy để những quản trị viên đó đi với các bản ghi CNAME / TXT hoặc gọi cho họ :-)


1
Phải .. đó thực sự là nơi tôi phải làm điều đó ;-)

2
Hai cái đầu tiên tôi liệt kê là từ các công cụ quản trị trang web của Google

@Cyclone, tôi đồng ý với bạn rằng cái trước có vẻ an toàn hơn cái thứ hai.

Điều hấp dẫn về điều này là bạn kết thúc với một tệp có tên khó hiểu cho mỗi dịch vụ, làm lộn xộn thư mục gốc. Đó không phải là một lỗ hổng khủng khiếp, nhưng có những lựa chọn thay thế sạch hơn.
Bobby Jack

Hmm .. Tôi nghĩ rằng bạn tạm thời đặt tệp có tên khó hiểu ở đó trong quá trình xác minh.
aioobe

6

Tải lên một tệp có tên khó hiểu là cách để đi.

Bạn đã viết nhược điểm là họ có thể không được phép tải tệp lên thư mục gốc. Trong trường hợp đó, điều đó có nghĩa là họ không sở hữu trang web, đó là những gì bạn đang cố gắng tìm hiểu.


Chính xác. Bạn không cần quyền truy cập "root" vào máy chủ, tức là bên ngoài thư mục htmlhoặc www.
Chris Laplante

Ý tôi là không được phép trong quy tắc viết lại đó có thể gây khó khăn hoặc phức tạp khi tải tệp lên

@Cyclone, đúng nhưng tôi đoán khá hiếm khi không cho phép truy cập vào tệp HTML vật lý.

Có nhưng với các hệ thống MVC (chẳng hạn như codeigniter), có thể gặp rắc rối khi tìm ra cách truy cập tệp vật lý không phải là một phần của hệ thống chính

Tôi nghĩ CI vẫn cho phép truy cập vào các tệp HTML vật lý. Nhưng chỉ trong trường hợp, bạn cũng có thể cho phép phương thức thẻ meta, để người dùng của bạn không bị mắc kẹt trong trường hợp có vấn đề với tệp .htaccess hoặc khung MVC của họ.

1

Tôi sẽ khuyên bạn nên sử dụng thẻ meta ...

  • Bao gồm một thẻ meta

0

Cá nhân tôi sẽ đi với tùy chọn email tự động.

Yêu cầu người dùng nhập URL và địa chỉ email của họ, kiểm tra xem tên miền có giống nhau trong cả hai trường hợp không. Việc sử dụng cùng một hệ thống như hệ thống đặt lại mật khẩu sử dụng:

  • Tạo một hàm băm ngẫu nhiên, một phần được tạo thành từ microtime và miền hiện tại
  • Lưu trữ hàm băm trong cơ sở dữ liệu
  • Gửi cho người dùng một email có liên kết xác minh, trong đó tham số 'id' là hàm băm
  • Bây giờ người dùng đã được xác minh (xóa hàng khỏi cơ sở dữ liệu)

Để tăng cường bảo mật, hãy lưu trữ thời gian mà hàm băm được tạo ra và sau đó hết thời gian sau một hoặc hai giờ.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.