Saya seorang pemula, dan isu keselamatan tiba-tiba berlaku kepada saya semasa saya menulis kod hari ini.
Untuk pelbagai permintaan ajax, bolehkah penggodam menghantar kod secara luaran? Kerana pelayar fail JS boleh melihatnya, iaitu, ia boleh mengetahui kod anda Jadi jika penggodam menggunakan nama domain kami untuk menyerahkannya secara luaran, bolehkah PHP menentukan sama ada ia sah? Sebagai contoh, tentukan sama ada fail kami sendiri telah diserahkan?
Sebagai contoh, fail js saya mempunyai kod
$('input').click(function(){ $.post('index.php',{a:xx,b:xx},function(a){ xxxxx }) }) 那么如果黑客通过外部提交 xxxxxxxxxxx $('input').click(function(){ xxxxxx $.post('http://www.xxxx.com/index.php',{a:xx,b:xx},function(a){ xxxxx }) xxxxxx }) xxxxxxxxxxx
Bagaimanakah saya harus menulisnya dalam PHP untuk menghalangnya?
Faham CSRF?
Penyerahan luaran adalah perkara biasa dan suntikan perlu dicegah melalui prosedur.
Menurut apa yang anda katakan, data yang diserahkan oleh simulasi ajax luaran adalah merentas domain.
Anda mempunyai pelbagai cara untuk menangani perkara ini. Contohnya:
1 Anda boleh menetapkan kebenaran akses Contohnya, hanya ahli yang log masuk boleh melihatnya atau mengehadkan nama domain ini akan menyukarkan orang lain untuk merangkak. Tetapi halangan ini sentiasa boleh diatasi.
2. Gunakan sesi untuk menjana token Sahkan sesi selepas penyerahan.
3. Menganalisis log akses dan menyekat akses IP yang mencurigakan dari peringkat pelayan.
4 Rekod ketumpatan operasi setiap IP Jika lebih kerap, anda boleh meminta kod pengesahan dari semasa ke semasa.
...
Terdapat banyak kaedah, tetapi tiada satu pun yang terbaik. Semoga diterima pakai~