Artikel yang menerangkan suntikan SQL Node mysql
Walaupun kami tidak akan terus menggunakan NodeJS asli untuk membangunkan bahagian belakang, ia masih perlu untuk memahami SQL注入
.
Artikel ini menggunakan NodeJS
MySQL
untuk menerangkan SQL注入
.
SQL注入攻击
ialah kaedah serangan yang sangat lama, ia telah wujud sejak web2.0
dilahirkan. Ia biasanya muncul dalam komponen bahagian hadapan seperti SQL注入攻击
kotak input dan medan teks. Tambahkan pada kandungan input dan hantarkannya ke latar belakang bersama-sama. [Tutorial berkaitan yang disyorkan: SQL语句
tutorial video nodejs]
yang dihantar dari hujung hadapan ke SQL语句
nya sendiri dan akhirnya menyambungkannya menjadi kod serangan . SQL语句
Demonstrasi suntikan SQL
Ambil log masuk sebagai contoh, saya menambah jadual dalam MySQL
untuk menyimpan nama pengguna dan kata laluan. users
, saya mencipta sekeping data: users
kata laluaninsert into users (username,
, realname) values ('leihou', '123', '雷猴');
username: 'leihou'
password: '123'
realname: '雷猴'
latar belakang, saya mencipta kaedah log masuk NodeJS
const mysql = require('mysql') // 创建连接对象 const con = mysql.createConnection({ host: 'localhost', // 地址 user: 'root', // 连接数据库的用户 password: '123456', // 连接数据库的密码 port: '3306', // 默认端口 database: 'testdb' // 数据库名 }) // 开始连接 con.connect() // 统一执行 sql 的函数 function exec(sql) { const promise = new Promise((resolve, reject) => { con.query(sql, (err, result) => { if (err) { reject(err) return } resolve(result) }) }) return promise } // 登录方法 const login = (username, password) => { const sql = ` select username, realname from users where username='${username}' and password='${password}'; ` console.log(sql) return exec(sql).then(rows => { return rows[0] || {} }) }
"Permintaan http NodeJS". Oleh kerana bahagian antara muka bukan fokus artikel ini, saya akan melangkaunya di sini (biar saya malas).
Pada masa ini, buat satu lagi halaman, kira-kira hasilkan beberapa kandungan, kemudian gunakan HTML
untuk berhubung dengan bahagian belakang. Ajax
postman
Kaedah Log masuk di atas kita boleh tahu bahawa input bahagian hadapan adalah seperti berikut Kandungan akan membolehkan anda log masuk dengan jayanya
- Nama pengguna: leihouKata Laluan: 123
, Perhatikan bahawa terdapat ruang sebelum dan selepas leihou' --
. Kemudian kata laluan boleh dimasukkan secara santai. --
yang disambungkan ialah SQL
select username, realname from users where username='leihou' -- ' and password='aslkfjsaf';
, MySQL
mewakili maksud anotasi. Maka pernyataan di atas menjadi --
. Sememangnya, kata laluan dipintas. 查询 username 为 leihou 的那条数据
yang dimasukkan di atas memintas maklumat log masuk dan membocorkan. Tetapi jika orang lain mahu memadamkan jadual anda, akibatnya akan menjadi sangat serius. username
dalam kotak input nama pengguna. leihou'; delete from users; --
. users
Kaedah pencegahan
Ia benar-benar terlalu lama, lebih daripada sepuluh tahun. Jadi kaedah daya tindak asas adalah matang. SQL注入攻击
untuk memuat turun pakej pergantungan NodeJS
Kaedah ini disediakan: MySQL
. escape
// 省略部分代码 const mysql = require('mysql') // 省略创建连接对象 // 省略开始连接 // 统一执行 sql 的函数 exec 方法 const escape = mysql.escape const login = (username, password) => { username = escape(username) password = escape(password) const sql = ` select username, realname from users where username=${username} and password=${password}; ` console.log(sql) return exec(sql).then(rows => { return rows[0] || {} }) }
akan terlepas. escape
pada masa ini, kandungan berikut akan dicetak pada konsol bahagian belakang: leihou' --
select username, realname from users where username='leihou\' -- ' and password='123345';
ialah melarikan diri. leihou'
mencegah MySQL
. SQL注入攻击
tutorial nodejs!
Atas ialah kandungan terperinci Artikel yang menerangkan suntikan SQL Node mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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





Artikel ini akan memberi anda pemahaman yang mendalam tentang memori dan pengumpul sampah (GC) enjin NodeJS V8 saya harap ia akan membantu anda!

Perkhidmatan Node yang dibina berdasarkan bukan sekatan dan dipacu peristiwa mempunyai kelebihan penggunaan memori yang rendah dan sangat sesuai untuk mengendalikan permintaan rangkaian besar-besaran. Di bawah premis permintaan besar-besaran, isu yang berkaitan dengan "kawalan memori" perlu dipertimbangkan. 1. Mekanisme kutipan sampah V8 dan had ingatan Js dikawal oleh mesin kutipan sampah

Modul fail ialah enkapsulasi operasi fail asas, seperti membaca/menulis/membuka/menutup/memadam fail, dsb. Ciri terbesar modul fail ialah semua kaedah menyediakan dua versi **segerak** dan ** asynchronous**, dengan Kaedah dengan akhiran penyegerakan adalah semua kaedah penyegerakan, dan kaedah yang tidak semuanya adalah kaedah heterogen.

Apabila saya menyemak dokumen antara muka baru-baru ini, saya mendapati bahawa parameter yang ditakrifkan oleh rakan kongsi kecil ialah nilai penghitungan, tetapi dokumen antara muka tidak memberikan nilai penghitungan khusus yang sepadan. Sebenarnya, cara menulis dokumen antara muka dengan baik adalah sangat penting. Hari ini, Saudara Tianluo membawakan anda 12 mata untuk diberi perhatian dalam dokumen reka bentuk antara muka~

Perkara yang dibawa oleh artikel ini kepada anda ialah pemahaman mendalam tentang generik dalam golang? Bagaimana untuk menggunakan generik? Ia mempunyai nilai rujukan tertentu Rakan-rakan yang memerlukan boleh merujuk kepadanya.

Gelung peristiwa ialah bahagian asas Node.js dan mendayakan pengaturcaraan tak segerak dengan memastikan bahawa utas utama tidak disekat Memahami gelung peristiwa adalah penting untuk membina aplikasi yang cekap. Artikel berikut akan memberi anda pemahaman yang mendalam tentang gelung acara dalam Node.

Pada mulanya, JS hanya berjalan pada bahagian penyemak imbas Mudah untuk memproses rentetan berkod Unikod, tetapi sukar untuk memproses rentetan binari dan bukan berkod Unikod. Dan binari ialah format data peringkat terendah komputer, video/audio/program/pakej rangkaian

Dalam sesetengah perpustakaan peringkat rendah, anda sering melihat penggunaan pakej yang tidak selamat. Artikel ini akan membawa anda memahami pakej tidak selamat di Golang, memperkenalkan peranan pakej tidak selamat dan cara menggunakan Pointer saya harap ia akan membantu anda!
