获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)_PHP
这个来自一些项目中,获取用户Ip,进行用户操作行为的记录,是常见并且经常使用的。 一般朋友,都会看到如下通用获取IP地址方法。
复制代码 代码如下:
function getIP() {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = $_SERVER['REMOTE_ADDR'];
}
return $realip;
}
这个是网上常见获取,ip函数,用这些值获取IP,我们首先要弄清楚,这些数据是从那个地方传过来的。
IP获取来源
1.'REMOTE_ADDR' 是远端IP,默认来自tcp 连接是,客户端的Ip。可以说,它最准确,确定是,只会得到直接连服务器客户端IP。如果对方通过代理服务器上网,就发现。获取到的是代理服务器IP了。
如:a->b(proxy)->c ,如果c 通过'REMOTE_ADDR' ,只能获取到b的IP,获取不到a的IP了。
另外:该IP想篡改将很难实现,在传递知道生成php server值,都是直接生成的。
2.'HTTP_X_FORWARDED_FOR','HTTP_CLIENT_IP' 为了能在大型网络中,获取到最原始用户IP,或者代理IP地址。对HTTp协议进行扩展。定义了实体头。
HTTP_X_FORWARDED_FOR = clientip,proxy1,proxy2 所有IP用”,”分割。 HTTP_CLIENT_IP 在高级匿名代理中,这个代表了代理服务器IP。既然是http协议扩展一个实体头,并且这个值对于传入端是信任的,信任传入方按照规则格式输入的。以下以x_forword_for例子加以说明,正常情况下,这个值变化过程。

分析Bug风险点:
通过刚刚分析我们发现,其实这些变量,来自http请求的:x-forword-for字段,以及client-ip字段。 正常代理服务器,当然会按rfc规范来传入这些值。但是,当一个用户直接构造该x-forword-for值,发送给用户用户,那将会怎么样呢?
图(1)
第2步,修改x-forword-fox值,我们看看结果
第三步,我们再修改下看看会怎么样?
哈哈,看到上面结果没,x-forwarded-for不光可以自己设置值,而且可以设置任意格式值。 这样一来,好比就直接有一个可以写入任意值的字段。并且服务器直接读取,或者写入数据库,或者做显示。它将带来危险性,跟一般对入输入没有做任何过滤检测,之间操作数据源结果一样。 并且容易带来隐蔽性。
结论:上面getip函数,除了客户端可以任意伪造IP,并且可以传入任意格式IP。 这样结果会带来2大问题,其一,如果你设置某个页面,做IP限制。 对方可以容易修改IP不断请求该页面。 其二,这类数据你如果直接使用,将带来SQL注册,跨站攻击等漏洞。至于其一,可以在业务上面做限制,最好不采用IP限制。 对于其二,这类可以带来巨大网络风险。我们必须加以纠正。
需要对getip 进行修改,得到安全的getip函数。
这类问题,其实很容易出现,以前我就利用这个骗取了大量伪装投票。有它的隐蔽性,其实只要我们搞清楚了,某些值来龙去脉的话。理解了它的原理,修复该类bug将是非常容易。
题外话,做技术,有三步,先要会做,会解决;后要思考为什么要这么做,原因原理是什么;最后是怎么样做,有没有其它方法。多问问自己,你发现距离技术真理越来越近。你做事会越来越得心应手的!
作者:chengmo QQ:8292669

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Xiaohongshu ialah platform e-dagang sosial yang popular di mana pengguna boleh berkongsi kehidupan harian mereka dan menemui produk kegemaran mereka. Sesetengah pengguna lebih sensitif terhadap privasi peribadi dan berharap alamat IP mereka tidak akan dipaparkan pada Xiaohongshu untuk melindungi privasi dalam talian mereka. Jadi, bagaimana untuk menetapkan Xiaohongshu supaya tidak memaparkan alamat IP? Artikel ini akan menjawab soalan ini secara terperinci. 1. Bagaimana untuk menetapkan Xiaohongshu supaya tidak memaparkan alamat IP? 1. Ubah suai tetapan Xiaohongshu: Buka APP Xiaohongshu, klik "Saya" di penjuru kanan sebelah bawah untuk memasuki pusat peribadi. Kemudian klik pada avatar untuk memasukkan tetapan akaun. Dalam tetapan akaun, cari "Tetapan Privasi" dan klik untuk masuk. Di sini, anda boleh mencari pilihan tetapan untuk alamat IP, matikan sahaja. 2. Kosongkan cache: Kadangkala, Xiaohongshu mungkin memaparkan ralat

Cara melihat semua alamat IP pada LAN menggunakan cmd: 1. Tekan kekunci pintasan "Win+R" untuk membuka tetingkap "Run" 2. Selepas memasukkan "CMD" dalam tetingkap "Run", tekan kekunci Enter; 3. Dalam "Command" terbuka Dalam antara muka "Prompt", masukkan arahan "arp -a" dan tekan kekunci Enter 4. Daripada hasil yang dikembalikan, anda boleh melihat alamat IP semua komputer dalam LAN tempatan itu; berkomunikasi dengan mesin.

Kadang-kadang semua orang menghadapi keperluan untuk mengubah suai alamat IP secara manual, tetapi sesetengah pelanggan Windows 10 melaporkan bahawa alamat IP tidak boleh disimpan selepas menetapkannya Bagaimana untuk menyelesaikan situasi ini? Alamat IP disimpan pada asasnya kerana terdapat ralat dalam mengisi alamat IP anda Anda boleh menyemak sama ada awalan subnet telah ditulis dengan subnet mask Jika ya, tukarkannya semula. alamat IP. Bagaimana untuk menyelesaikan masalah bahawa alamat IP Windows 10 tidak boleh disimpan selepas ia ditetapkan: Gambar ralat adalah seperti berikut: Gesaan "Tidak dapat menyimpan tetapan IP, sila semak satu atau lebih tetapan dan cuba" disebabkan oleh mengisi ralat ini ialah panjang awalan subnet, bukan topeng subnet Seperti yang ditunjukkan dalam gambar. Seperti yang ditunjukkan dalam gambar di atas, ramai pengguna sebenarnya menulis awalan subnet sebagai topeng subnet.

Di manakah alamat IP telefon bimbit Xiaomi? Anda boleh menyemak alamat IP pada telefon bimbit Xiaomi, tetapi kebanyakan pengguna tidak tahu di mana untuk menyemak alamat IP Seterusnya ialah tutorial grafik tentang cara menyemak alamat IP telefon bimbit Xiaomi telefon yang dibawa oleh editor. Pengguna yang berminat datang dan lihat! Di manakah alamat IP telefon bimbit Xiaomi? . Kemudian pada halaman Semua Parameter , slaid ke bawah dan pilih [Maklumat Status] 4. Akhir sekali, anda boleh melihat alamat IP dalam antara muka maklumat status.

Xianyu ialah platform dagangan terpakai yang sangat praktikal Di sini kita boleh membeli pelbagai produk dan menjual barangan terbiar kita sendiri. Bagaimana jika kita ingin mengubah suai alamat kita. Mari lihat dengan editor di bawah! Kongsi cara mengubah suai alamat IP Xianyu Pertama, buka perisian Xianyu Selepas memasuki laman utama, anda boleh melihat pasaran makanan laut, cadangan, alamat dan pilihan lain di sudut kiri atas. 2. Kemudian pada halaman alamat, kami klik [Anak Panah Bawah] di sebelah alamat 3. Selepas klik terakhir, kami klik pada bandar pada halaman pemilihan bandar;

Pengguna berkongsi kehidupan mereka, menunjukkan bakat mereka, dan berinteraksi dengan netizen di seluruh negara dan juga dunia melalui Douyin. Sesetengah pengguna ingin menukar alamat IP mereka di Douyin atas sebab seperti perlindungan privasi atau sekatan geografi. Jadi, bagaimanakah alamat IP Douyin menukar lokasinya? 1. Bagaimana untuk menukar lokasi alamat IP Douyin? Pelayan proksi ialah perkhidmatan perantara yang digunakan untuk memajukan permintaan pengguna ke Internet dan mengembalikan respons. Dengan mengkonfigurasi pelayan proksi, pengguna boleh menyembunyikan alamat IP sebenar mereka dan menukar alamat IP mereka. Pendekatan ini membantu melindungi privasi pengguna dan meningkatkan keselamatan rangkaian. Pelayan proksi juga boleh digunakan untuk mengakses kandungan terhad atau memintas sekatan geolokasi. Secara umumnya, menggunakan pelayan proksi ialah alat rangkaian praktikal yang boleh membantu pengguna melayari Internet dengan lebih selamat dan bebas.

Setiap hos mempunyai pengecam alamat unik yang dipanggil "alamat IP". Alamat IP ialah format alamat bersatu yang disediakan oleh protokol IP Ia memberikan alamat logik yang unik kepada setiap rangkaian dan setiap hos di Internet untuk melindungi perbezaan dalam alamat fizikal. Disebabkan alamat unik ini, ia dipastikan bahawa pengguna boleh memilih objek yang mereka perlukan dengan cekap dan mudah daripada beribu-ribu komputer apabila beroperasi pada komputer yang disambungkan.

Dengan perkembangan pesat Internet, alamat IP telah menjadi bahagian penting dalam komunikasi rangkaian. Maklumat alamat IP sangat penting dalam pemantauan keselamatan rangkaian, pengurusan trafik dan pengiklanan e-dagang yang disasarkan. Oleh itu, untuk memudahkan pengguna menanyakan maklumat alamat IP/nama domain, banyak laman web menyediakan fungsi pertanyaan alamat IP. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi pertanyaan alamat IP untuk rujukan pembaca. 1. Apakah alamat IP? Alamat IP (InternetProtocolAddress) ialah protokol rangkaian
