2012-02-10 36 views
7

Nếu tôi ném cả hai thứ này vào một cơ sở dữ liệu, đủ để ngăn chặn một khách truy cập trang web giả mạo rằng họ đến từ một địa chỉ IP khác không?Ngăn chặn giả mạo IP

$ip1 = $_SERVER['HTTP_X_FORWARDED_FOR']; 
$ip2 = $_SERVER['REMOTE_ADDR']; 
+3

Ý bạn là gì bởi _spoofing_? '$ _SERVER ['REMOTE_ADDR']' sẽ hiển thị cho bạn địa chỉ IP của điểm cuối từ xa, rất khó để giả mạo ở giữa kết nối, nhưng dễ dàng giả mạo gần hơn với một trong hai điểm kết thúc của kết nối - nhưng chương trình trên máy chủ lưu trữ đó có thể mạo danh mạo danh một trong những người dùng của bạn. Bạn đang thực sự cố gắng đo lường hoặc ngăn chặn điều gì? – sarnold

+2

@ sarnold Tôi muốn cho phép một hành động chỉ 5 phút một lần từ một địa chỉ IP đã cho. Ý tưởng là một người sẽ chỉ có thể thực hiện hành động sau mỗi 5 phút, thay vì nhấp vào không ngừng trong hàng trăm lần mỗi phút. – John

Trả lời

3

Trả lời ngắn gọn - không. Bạn không bao giờ có thể đảm bảo liên kết giữa IP và một người. Đối với hầu như tất cả các mục đích thực tế mặc dù, có, đó là đủ tốt.

Trừ khi bạn thực sự mong đợi một người nào đó đến độ dài đáng kể để ẩn IP của họ, bạn sẽ ổn thôi.

Nó thực sự phụ thuộc vào những gì bạn đang cố gắng làm là liệu nó có đủ tốt hay không.

Chỉnh sửa: Vừa xem nhận xét của bạn về bài đăng đầu tiên. Một lựa chọn cho điều đó là nhìn vào Evercookies - chúng cực kỳ xâm lấn và phi đạo đức, nhưng chúng thực hiện một công việc rất tốt, vì vậy đó là cuộc gọi của bạn.

+0

ooh, evercookies trông thật tuyệt, +1 đến ya – Cyclone

+0

Như tôi đã nói, phi đạo đức như địa ngục, nhưng chắc chắn là tuyệt vời. Tôi tự hỏi những gì những người SOPA sẽ nghĩ về họ: P – Joe

+0

Tôi sẽ không bao giờ sử dụng nó một cách cá nhân, nhưng yeah, điều đó thực sự rất gọn gàng. Tôi không nghĩ rằng tôi đã khá nhận ra có bao nhiêu cách có thể lưu trữ một mảnh thông tin nhận dạng trên máy tính của người dùng cho đến bây giờ. – Cyclone

1

Không, rất dễ bị giả mạo X-FORWARDED-FOR, theo nghĩa đen được gửi dưới dạng tiêu đề. Hãy thử tạo một hệ thống tài khoản hoặc cho nó dựa vào email hoặc một cái gì đó. Bạn không thể tin tưởng IP một mình.

Với nhận xét trên, $_SERVER['REMOTE_ADDR'] rất có thể sẽ đủ vì họ phải thay đổi IP mỗi khi họ muốn thực hiện tác vụ đó, điều này liên quan đến proxy hoặc có khả năng là Tor.

0

Không, bạn chỉ có thể tránh sử dụng một số máy chủ proxy.

Hiện vẫn còn những lựa chọn cho phép bạn "giấu" IP thực sự của bạn (và nhiều người như họ sự riêng tư), chẳng hạn như:

Tính năng ghi nhật ký IP giúp bạn chỉ cần một số người dùng khác (và nhiều người trong số họ sử dụng ips động từ nhóm cung cấp của họ để không có lệnh tòa, bạn sẽ không bao giờ biết ai và cấm nhiều người với anh ta/cô ấy) nhưng chống lại quản trị viên với 150 máy có sẵn ...

0

Khi bất kỳ người dùng nào truy cập trang web của bạn với máy chủ proxy trong trường hợp đó cả hai giá trị đều khác nhau.Bạn có thể lấy địa chỉ IP bằng biến máy chủ HTTP_X_FORWARDED_FOR. Trong trường hợp đó ' HTTP_X_FORWARDED_FOR 'được đăng bởi máy chủ proxy, mô tả IP máy khách, trong khi' REMOTE_ADDR 'mô tả IP của máy chủ proxy.

Khi bất kỳ người dùng nào truy cập trang web của bạn mà không có bất kỳ máy chủ proxy nào trong trường hợp đó, bạn có thể nhận địa chỉ IP bằng biến máy chủ REMOTE_ADDR. Vì vậy, trong trường hợp đó HTTP_X_FORWARDED_FOR và HTTP_VIA sẽ không có sẵn.

1

HTTP_X_FORWARDED_FOR là tiêu đề HTTP, do đó có thể dễ dàng giả mạo. REMOTE_ADDR là một biến môi trường được cung cấp bởi máy chủ web như được chỉ định trong đặc tả CGI. Nó không thể dễ dàng bị giả mạo. Vì vậy, không có điểm thực trong bộ nhớ đệm hoặc là một.

Nếu ai đó đang giả mạo tiêu đề HTTP_X_FORWARDED_FOR bằng máy chủ proxy bị xâm phạm, thì bạn không thể làm gì nhiều với điều đó. Tuy nhiên, nên tin tưởng rằng yêu cầu không được ủy quyền không bị giả mạo kể từ khi, trừ khi kẻ tấn công nằm trên cùng một mạng con, chúng bị giới hạn trong một cuộc tấn công giả mạo mù, yêu cầu họ đoán chuỗi và xác nhận số lượng kết nối TCP. Điều này rất khó thực hiện trên các mạng hiện đại. Và ngay cả khi họ quản lý để làm điều này, họ sẽ không thể nhận được bất kỳ dữ liệu được chuyển đến IP giả mạo, do đó, nó sẽ được dễ dàng để lọc ra bất kỳ cuộc tấn công giả mạo mù. Những ngày này, nó không thực sự có thể (ok, không có gì là không thể, nhưng nó đòi hỏi những trường hợp rất cụ thể và có các ứng dụng hạn chế) để ai đó thực sự sử dụng một IP giả mạo để tạo kết nối TCP ẩn danh tới một máy chủ web. Quay lại đầu trang Tại hầu hết các gói giả mạo được sử dụng cho DDoS và các cuộc tấn công lũ lụt.

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