Junior — Middle
Ներկայացրեք, թե ինչ է ենթադրվում SQL կոդերի ներդրման մեթոդը ծրագրում և ինչպես կանխել դա։
sobes.tech AI
Պատասխան AI-ից
SQL ինժեքցիան մեթոդ է հարձակման, որի ժամանակ հարձակվողը մուտք է գործում կամ ներմուծում վնասակար SQL կոդ տվյալների բազայի հարցումների մեջ, օգտագործելով օգտվողի կողմից մուտքագրված տվյալները: Սա թույլ է տալիս անօրինական մուտք գործել տվյալների, փոխել կամ ջնջել դրանք:
Go ծրագրերում SQL ինժեքցիան կանխելու համար անհրաժեշտ է:
- Օգտագործել պատրաստված արտահայտություններ (prepared statements) պարամետրավորմամբ, որտեղ արժեքները մուտքագրվում են առանձին SQL կոդից:
- Աշխատել string-ների կոնկատենացիայից SQL հարցումների ձևավորման ժամանակ օգտագործվող տվյալների հետ:
- Օգտագործել ORM գրադարաններ, որոնք ավտոմատ կերպով մշակում են պարամետրերը:
- Վալիդացնել և ֆիլտրել օգտվողի մուտքագրված տվյալները:
Օրինակ՝ օգտագործելով պատրաստված արտահայտություն Go-ում:
import (
"database/sql"
_ "github.com/lib/pq"
)
func getUserByEmail(db *sql.DB, email string) (*User, error) {
var user User
err := db.QueryRow("SELECT id, name FROM users WHERE email = $1", email).Scan(&user.ID, &user.Name)
if err != nil {
return nil, err
}
return &user, nil
}
Այստեղ email պարամետրը փոխանցվում է առանձին, ինչը բացառում է վնասակար SQL կոդի ներմուծումը։