Ma'lumotlar bazasi xatolarining oldini olish uchun server tomonini tekshirish

Men server tomonini kodlashda juda yangiman va hozirda ma'lumotlar bazasidan ob'ektlarni tortib olish, foydalanuvchiga ularni tahrirlash imkonini beruvchi va keyin ushbu elementlarni ma'lumotlar bazasiga qayta kiritishni o'z ichiga olgan sayt yaratmoqdaman.

Biroq, ishlab chiqish vositalaridan foydalanish orqali foydalanuvchi ma'lumotlar bazasini buzishini qanday oldini olishni bilmayman.

Asosan elementlar ro'yxatda ko'rsatiladi va har bir element skriptdir. U o'zining noyob identifikatori va nomiga ega (yagona bo'lishi shart emas). Shunday qilib, u ma'lumotlar bazasidan chiqarilganda, nom ro'yxat matni bo'ladi va id atribut maydonida joylashgan. Ular tahrirlanganda, men html atributidan identifikatorni olaman va ma'lumotlar bazasidagi har qanday o'zgarishlarni saqlash uchun foydalanaman.

Albatta, men foydalanuvchi tomonidan kiritilgan barcha tahrirlarga ruxsat berilganligini aniqlash uchun server tomonini tekshiraman.

Lekin, men duch kelayotgan muammo shundaki, foydalanuvchi dasturchi vositalarining har qanday shaklini osongina ochishi, skriptlar identifikatorini o'zgartirishi (ularni o'zgartirishi yoki xohlagan tarzda o'zgartirishi) va bu ma'lumotlar bazasiga zarar etkazadi.

Kimdir menga bu muammoning oldini olish uchun bir nechta texnikani taklif qilishi mumkinmi? Men buni juda qadrlayman. Rahmat!

Bu qanday yordam berishini bilmayman, lekin mening kodimning aksariyati Javascript (jquery va jQuery ui yordamida) va PHP (ramka sifatida CodeIgniterdan foydalanish) da.

tahrirlash:

Ikki elementni tasavvur qiling

Id -> Sarlavha -> Tavsif

5 -> Salom -> Dunyo

6 -> Xayr -> Uxlash

Server tomonida ular ro'yxat sifatida ko'rsatiladi va qiymatlarni tahrirlashning muqobil usuli mavjud.

<li data-id=5>Hello</li>
<li data-id=6>Bye</li>

Kimdir yong'in xatosini yuklashi va men so'rovlar uchun foydalanadigan ma'lumotlar identifikatorini o'zgartirishi mumkin, aytaylik, birinchisini 7 qilib qo'ying. Yoki ikkalasini almashtiring. Bunday holda, bu juda muhim emas, lekin bu mening qiziqishim uchun ko'proq, buni oldini olishning biron bir usuli bormi?


person user1464055    schedule 16.07.2012    source manba
comment
Serverda foydalanuvchi kiritgan maʼlumotlarni tasdiqlashingiz kerak (yo'q).   -  person Matt    schedule 16.07.2012
comment
Albatta, men foydalanuvchi tomonidan kiritilgan barcha tahrirlarga ruxsat berilganligini aniqlash uchun server tomonini tekshiraman. Lekin, men skriptlarning id raqamlari o'zgartirilganligini qanday tekshirishni bilmayman, chunki bu men asosan so'ragan narsadir. Qolgan hamma narsa foydalanuvchi o'z xohishiga ko'ra tahrirlashiga bog'liq.   -  person user1464055    schedule 16.07.2012
comment
ma'lumotni o'qiyotganda tekshiring (yaramas qadamga yo'naltirish) va uni yozishda tekshiring (to'g'ridan-to'g'ri qamoqqa boring, chiqish sahifasidan o'tmang, 200 dollar yig'mang).   -  person Waygood    schedule 16.07.2012
comment
@ user1464055 - Nima uchun ular o'zgartirilganligini tekshirishga harakat qilyapsiz? Siz foydalanuvchiga ushbu identifikatorlarni tahrirlashga ruxsat berilganligini tekshirishingiz kerak. (Agar siz buni tekshirayotgan bo'lsangiz, sizning muammoingiz shundaki, zararli tahrirlarni amalga oshiradigan foydalanuvchilarga zararli tahrirlar qilishga ruxsat beriladi ... va bu texnik muammo emas).   -  person Quentin    schedule 16.07.2012
comment
Ha, men har doim o'qish yoki yozishni tekshira olaman deb o'ylayman, shunchaki samarasiz tuyulardi.   -  person user1464055    schedule 16.07.2012


Javoblar (1)


Ma'lumotlar bazasiga xavfsiz so'rov yuborish uchun mysql_real_escape_string dan foydalaning:

    $user_input = mysql_real_escape_string($_POST['user_input']);
person Timmy D'Hooghe    schedule 16.07.2012