用REMOTE_ADDR获取的IP有可能是被伪造的吗?解决思路

WBOY
풀어 주다: 2016-06-13 12:12:55
원래의
3061명이 탐색했습니다.

用REMOTE_ADDR获取的IP有可能是被伪造的吗?
在做一个投票网页应用,相同ip一定时间不能连续投,获取IP用的是REMOTE_ADDR

请教:有可能会被恶意刷票者任意伪造不同的IP吗?我的意思是任意伪造,不考虑使用代理,反复拨号等“正常”情况

对IP、tcp协议一类的东西基本不懂,但听说理论上可以伪造,只是无法获取返回的信息,但如果是刷票,似乎只要能post请求成功就行了,有没信息和网页返回并不重要,不知我的理解对不对?如果这样是不是意味着可以伪造ip刷票?
------解决思路----------------------
REMOTE_ADDR 表示的是直接连通到你的服务器的设备的 IP 地址
互联网中的所有路由器都做了透明设置,所以 REMOTE_ADDR 实际是你接入互联网的设备的 IP 地址
而接入互联网的路由器大多都不具备透明设置功能

你也知道伪造 REMOTE_ADDR 将无法获取返回的信息

那么你只要在判断 REMOTE_ADDR 的同时判断一下 session(sessionid 必须经过与用户的交互才能生效)或表单页需经过重定向(js 的 location 指定,php 的 header 函数)才能到达计票页,就可以避免恶意伪造了
------解决思路----------------------
生成投票页时开启 session
session_start();
然后你创建一个 session 变量
$_SESSION['name'] = 'value';
名字和值由你自己决定

接收提交的页检查这个名字和值是否正确后,再进行计票

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿