Sil*_*ght 84 php security ip-address
信任是否安全$_SERVER['REMOTE_ADDR']?它可以通过更改请求的标题或类似的东西来代替吗?
写这样的东西是否安全?
if ($_SERVER['REMOTE_ADDR'] == '222.222.222.222') { // my ip address
$grant_all_admin_rights = true;
}
Run Code Online (Sandbox Code Playgroud)
sag*_*agi 103
是的,这很安全.它是TCP连接的源IP,不能通过更改HTTP标头来替换.
您可能需要担心的一种情况是,如果您在反向代理之后,在这种情况下,REMOTE_ADDR将始终是代理服务器的IP,并且用户IP将在HTTP标头中提供(例如X-Forwarded-For).但对于正常的用例,阅读REMOTE_ADDR很好.
phi*_*hag 56
$_SERVER['REMOTE_ADDR']是TCP连接的IP地址.虽然在技术上可以在互联网上双向欺骗IP地址(通过BGP宣布犯规路线),但这种攻击很可能被发现并且不可用于典型的攻击者 - 基本上,攻击者必须能够控制ISP或运营商.尚未对TCP进行可行的单向欺骗攻击(尚未).然而,双向IP欺骗在LAN上是微不足道的.
另请注意,它可能不是IPv4,而是IPv6地址.您当前的检查是在这方面的罚款,但如果你将检查1.2.3.4仅发生在任何地方内$_SERVER['REMOTE_ADDR'],攻击者可以简单地从连接2001:1234:5678::1.2.3.4.
总之,对于除关键(银行/军事/潜在损害> 50.000€)应用程序之外的任何其他应用程序,如果您可以排除本地网络中的攻击者,则可以使用远程IP地址.
| 归档时间: |
|
| 查看次数: |
51023 次 |
| 最近记录: |