Cyc*_*one 13 sql-injection ip-address
用户是否可以伪造从$_SERVER['REMOTE_ADDR']PHP 返回的结果,以便它们理论上可以在数据库上使用SQL注入?
这有点愚蠢,但我仍然对PHP足够新,我想知道它是否可以完成,无论我是否需要在SELECT语句从返回的IP地址中选择时清理数据库输入$_SERVER['REMOTE_ADDR'].所以,如果我想使用类似的东西$query = "SELECT * FROM users WHERE IP='" . $_SERVER['REMOTE_ADDR'] . "'";,我会这样做会有危险吗?
再一次,可能是一个"nooby"问题,但我觉得必须要问.
谢谢
Nei*_*l N 16
这是一段时间,而且不太可能,但我不会说这是不可能的.所以....
无论如何都要使用参数化查询.
即使您从未通过IP地址字段受到攻击,您仍然可以通过缓存获得更快速查询的额外好处.
And*_*gor 11
您不能依赖REMOTE_ADDR是真的......由于匿名代理或某些此类技巧,它可能是错误的地址.您可以依赖它始终是一个IP地址,因此这条路径的SQL注入是不可能的.
在堆栈底部向下,已经从进行TCP连接的数据包的源地址转换为服务器.这意味着a)它必须是一个IP地址,并且b)必须路由回客户端才能实现连接.
我认为有人伪造的唯一方法$_SERVER['REMOTE_ADDR']是构造一个带有虚假IP地址的IP数据包(因为它是由服务器而不是客户端设置的),在这种情况下,响应将被路由回伪造的地址.如果您担心注入攻击,我认为您没问题,因为IP数据包中的地址字段只有地址空间.