Artikel ini akan membincangkan tiga langkah berjaga-jaga keselamatan biasa dalam Node Ia menerangkan terutamanya tiga aspek keselamatan semasa membangunkan pelayan Node.
1 Ini adalah serangan paling primitif dan paling mudah yang telah muncul sejak web2.0 dengan interaksi manusia-komputer
Ia terutamanya melibatkan memasukkan serpihan sql Akhirnya, Disambungkan ke dalam a sekeping kod sql serangan
pada bahagian nod untuk menanyakan pangkalan data, seperti berikutApabila kami menggunakan nod untuk menyambung ke pangkalan data, kami biasanya menulis pernyataan
sql
Tetapi jika saya
membuatnya lulus dalam pernyataan sql, ia akan menjadi sangat berbahaya [Tutorial berkaitan yang disyorkan:-- 这是一个简易的登录判断sql语句, 输入 username 和 password 在 users 表中进行用户登录验证, 然后获取用户的地址和年龄 select address, age from users where username=${username} and password=${password}
, 在 username 中做点手脚
Pengajaran pengaturcaraan] Melihat pada coretan kod di atas, anda boleh menemuinya,
-- username 输入为 ali -- -- 上面这段 sql 就会被解析成这样 select address, age from users where username=ali -- and password=${password}
bermakna tidak kira apa kata laluan -- 在sql中是属于注释的存在
pengguna masukkan, selagi medan nama pengguna wujud dalam pangkalan data, maklumat yang sepadan boleh
sudah tentu anda juga boleh terus menyambung pernyataan sql yang memadam pangkalan data kemudian, yang sebenarnya lebih berbahaya
Pelan pemprosesan
-- username 输入为 ali; delete from users where username="ali" -- -- 就会拼接成下面这种语句 这是极其危险的 select address, age from users where username=ali; delete from users where username="ali" -- and password=${password}
boleh digunakan untuk membungkus semua data dari lapisan hadapan, fungsi ini akan menambah , supaya tiada komen dalam pernyataan sql
mysql.escape函数
-- 或者其他的特殊字符进行转义
2 . maklumat
Apabila kami membangunkan pelayan Node, kami hanya perlu memproses semua data yang datang dari bahagian hadapan, iaitu, melarikan diri daripada aksara khas
penyelesaian pemprosesanMembangunkan pelayan Node,
, hanya gunakan pakej ini untuk semua data yang dihantar dari bahagian hadapan(所有的转义字符后都需要 加上;这个特殊符号 由于无法演示 我截图的时候去掉了
3. Penyulitan kata laluan
使用 xss 这个npm包
Kerana penyerang boleh gunakan kata laluan akaun pengguna untuk cuba log masuk ke sistem lain
Kaedah pemprosesan
Ini memerlukan maklumat dalam pangkalan datasebelum ia disimpan. dalam pangkalan data
Sudah tentu, kunci ini perlu eksklusif untuk anda. Ia tidak boleh dibocorkanatau ia boleh disulitkan melalui algoritma kriptografi lain
不用明文存储用户的密码
把密码通过自定义 key 加密一下
Alamat asal: https://juejin.cn/. post/7199329705706324027
Atas ialah kandungan terperinci Analisis ringkas mengenai tiga aspek keselamatan biasa Node. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!