معنى كلمة sql

خواص دارویی و گیاهی

معنى كلمة sql
معنى كلمة sql

Copy Right By 2016 – 1395

لغة الاستعلامات البنيوية (أو البنائية) (بالإنجليزية: Structured Query Language أو SQL)‏ (لغة قواعد البيانات) هي لغة برمجة غير إجرائية Non Procedural Language، وهي بذلك تختلف عن لغات البرمجة المعتادة مثل سي أو جافا، حيث أن اللغات غير الإجرائية هي لغات متخصصة.[1][2][3] ولذلك فإن تركيب لغة الاستعلامات البنائية هي لغة للتعامل والتحكم مع قواعد البيانات المترابطة من خلال التعامل مع تراكيب البيانات وإجراء عمليات إدخال البيانات والحذف والفرز والبحث والتصفية والتعديل وخلافه.

في يونيو 1970 نشر العالم البريطاني إدجار كود ورقة علمية بعنوان “نموذج مترابط للبيانات في مستودعات البيانات الضخمة المشتركة A Relational Model of Data for Large Shared Data Banks” قدم فيها نموذجا لإنشاء وإدارة قواعد البيانات عرف باسم نموذج قاعدة البيانات المترابطة Relational Database Model، ووفقا لهذا النموذج يتم الاحتفاظ بالبيانات في جداول متفرقة ترتبط فيما بينها بعلاقات. حقق نموذج قاعدة البيانات المترابطة نجاحًا سريعًا بين المختصين، لكنه كان من الصعب التعامل مع هذا النموذج من خلال لغات البرمجة المألوفة آنذاك مثل لغة سي ولغة بيزيك، لذلك سعى المختصون في ابتكار لغة برمجة جديدة تكون قادرة على إنشاء قواعد البيانات والتعامل معها وفق نموذج قاعدة البيانات المترابطة. قامت جماعة من الباحثين في مختبرات شركة IBM بإنتاج أول لغة برمجة تحقق هذا الهدف وأطلقوا عليها الاسم SEQUEL وهذا اللفظ اختصار لعبارة اللغة الإنجليزية للاستعلامات البنيوية Structured English Query Language لكنهم تخلوا عن هذا الاسم سريعًا عندما اكتشفوا أنه علامة تجارية لشركة بريطانية تعمل في حقل الطيران واستبدلوه بالاسم الذي أصبح مستخدم حتى اليوم وهو تركيب لغة الاستعلامات البنائية SQL. قامت شركة IBM باستخدام تركيب لغة الاستعلامات البنائية في إنتاج عدد من نظم إدارة قواعد البيانات المترابطة وتوزيعها مثل النظام System R والنظام System/38 والنظام SQL/DS وأخيرًا النظام DB2. لكن النظام الذي حقق النجاح الأكبر هو النظام الذي اعتمدته شركة أوراكل Oracle وحمل اسمها والذي طرحته لأول مرة عام 1979. منذ ابتكار لغة الاستعلامات البنيوية في مطلع السبعينات، خضعت للعديد من التعديلات والتطويرات، كما قامت العديد من الشركات والمؤسسات البحثية بتصميم نسختها الخاصة من تركيب لغة الاستعلامات البنائية، ولمجابهة هذا الموقف قام المعهد الوطني الأمريكي للمعايير American National Standards Institute ANSI بإصدار أول نسخة معيارية من تركيب لغة الاستعلامات البنائية عام 1987 وهي التي عرفت باسم SQL1987، ثم توالت التعديلات والطبعات المعيارية، وحاليًا فإن اللغة المعيارية المعتمدة هي SQL2008.

تتركب لغة الاستعلامات البنائية من عدد من الكلمات المحجوزة، ويمكن تقسيم هذه الكلمات المحجوزة تبعًا لوظائفها التي تقوم بها إلى ثلاثة أقسام رئيسة هي:

لغة تعريف البيانات (بالإنجليزية: Data Definition Language DDL)‏ هي مجموعة من الكلمات المحجوزة التي تقوم بإدارة الكائنات في قاعدة البيانات سواء بالإنشاء أو التعديل أو الحذف وتشتمل هذه المجموعة على الكلمات المحجوزة التالية:

وهي اللغة الخاصة بالتعامل مع البيانات ذات نفسها داخل قواعد البيانات من استعلام (select) أو حذف بيانات (Delete) أو تحديث بيانات (update) أو ادخال بيانات جديدة (Insert).

معنى كلمة sql

وهي اللغة الخاصة بمنح المستخدمين صلاحيات معينة مثل :

ويمكن السماح للمستخدمين بمثل الصلاحيات الآتية:

وجهت العديد من الانتقادات إلى لغة الاستعلامات البنائية، وجميع هذه الانتقادات تتمحور حول فكرة أن لغة الاستعلامات البنائية قد صممت لتكون لغة غير إجرائية مخصصة لبرمجة قواعد البيانات المترابطة وهو ما تحققه لغة الاستعلامات البنائية، إلا أن بعض أدواتها تظهر قصور عن تحقيق هذه الفكرة، وقد عمل الكثير من الباحثين على معالجة هذه القصور، إلا أن المنتقدين يكررون باستمرار أن علة القصور ترجع إلى خلل في التصميم الأساسي للغة الاستعلامات البنائية وهو خلل لا يمكن معالجته لأنه جزء من مكونات لغة الاستعلامات البنائية الأساسية.

اقترح منتقدي لغة الاستعلامات البنائية تصميم بدائل لها يتم فيها تفادي القصور الذي تعاني منه لغة الاستعلامات البنائية، وقد ضمت البدائل التي اقترحوها:

تصمم معظم نظم أدارة قواعد البيانات المترابطة بحيث تكون متوافقة مع لغة الاستعلامات البنائية، ويعتبر التوافق مع النسخة المعيارية للغة الاستعلامات البنائية ANSI SQL من الميزات التي تحقق بها النظم شعبيتها. تضم هذه النظم عدد كبير من البرمجيات بعضها ذات سمعة كبيرة وبعضها الآخر قد لا يزيد عدد مستخدمية عن مطوريه وأصدقائهم. أهم هذه النظم هي:

أو سجّل دخولك باستخدام إحدى هذه الخدمات


كتابة / ترجمة
إبراهيم البحيصي

تَعرفنا في المقال السابق على مفهوم قواعد البيانات وما هي أنواعها. سوف نبدأ في هذا المقال أُولى خطواتنا في شرح لغة الاستعلام البنائية SQL، حيث سنتكلم عن لغة SQL ونعطي لمحة عن دورها وعلاقتها بقاعدة البيانات، ومن ثم سوف نبدأ بشرح أساسيات وجمل بناء قاعدة البيانات والجداول الخاصة بها باستخدام لغة SQL.

SQL هي اختصارٌ لـ Structured Query language وترجمتها هي “لغة الاستعلام البنائية” وتنطق بطريقتيْن؛ إما حرفًا حرفًا S Q L، أو تنطق كلمة واحدة “سيكيوال”.
لغة SQL هي لغة ذات غرض متخصص هدفها إعطاء القدرة على إدارة البيانات الموجودة في قواعد البيانات العلاقية والتعامل معها، وتخضع هذه اللغة لمعايير دولية متفق عليها، ويقوم المعهد الوطني الأمريكي للمعايير (ANSI) بإدارة وإصدار المعايير الخاصة ب SQL.

لا يعني ما سبق أن كل برمجيات إدارة قواعد البيانات التي ذكرناها في المقال السابق والتي لم نذكرها، لا يعني بأن SQL لديها موحدة، ولا يعني أنك تستطيع تماما أن تُنفذ نفس جملة SQL في جميع تلك البرمجيات بنجاح. فمن المهم أن نذكر هنا أن الشركات المسؤولة عن تلك البرمجيات الخاصة بإدارة قواعد البيانات، اعتمدت نسخًا مطورة من SQL المعيارية لتصبح خاصة بها وبأنظمتها مع اعتماد حد أدنى في التوافقية مع SQL المعيارية.

معنى كلمة sql


تستطيع باستخدام لغة SQL أن تقوم بالتالي:

تنقسم جمل وأوامر SQL إلى ثلاث مجموعات، وذلك حسب الدور الذي يقوم به الأمر:

يسرد الجدول التالي أهم الأوامر التي تُمَكّن المبرمج من إنشاء قاعدة البيانات الخاصة به وتنفيذ الجمل الخاصة بإدارتها وإدارة بياناتها.


في الواقع لا يوجد معيار لأمر إنشاء قاعدة البيانات في معيار SQL المقدم من معهد ANSI ولكن برمجيات قواعد البيانات العلاقية تقدم نسخة من هذا الأمر، وتختلف الصيغة من نظام إلى آخر.
الصيغة العامة لأمر إنشاء قاعدة البيانات هي كالتالي:


ملاحظات هامة

يُعد إنشاء الجدول في قاعدة البيانات أول الخطوات في طريق بناء قاعدة البيانات وملئها بالسجلات، وهذا الأمر يقوم به مسؤول قواعد البيانات أو المبرمج على حد سواء.

ستحتاج قبل أن تتمكّن من البدء في تنفيذ أوامر على القاعدة إلى تحديد قاعدة البيانات التي تريد العمل عليها، أي تلك التي ستُنشِئ الجداول فيها. تختلف طريقة تحديد قاعدة البيانات حسب طريقة الاتصال ببرنامج إدارة قواعد البيانات:

في سطر أوامر MySQL يُنفَّذ الأمر بالطريقة التالية:


في سطر أوامر PostgreSQL:


الصيغة العامة لجملة إنشاء الجدول في SQL:


شرح الصيغة:


ملاحظات هامة

بعد أن تكلمنا عن جملة إنشاء الجدول، يجب علينا توضيح جملة تعديل الجدول بعد إنشائه، حيث إن إجراء عمليات التغيير على الجدول يُعد أمراً مهما للمبرمج ومسؤول قواعد البيانات إذ يُنفَّذ باستمرار أثناء وفي بداية بناء النظم البرمجية والبرامج نظرا لتغير المتطلبات وعدم اكتمالها.

تُستخدَم جملة تعديل الجدول Alter Table عموما في الحالات التالية:

نسرُد في ما يلي الصيغ العامة لجملة تعديل الجدول.

لإنشاء جدول باسم Persons يحتوي على 5 أعمدة تمثل معلومات أشخاص مثل رقم الشخص واسمه وعنوانه، نُنَفذ الجملة التالية (اختبرناها على MySQL 5.7 و Oracle XE 11.2):


يتكوّن الجدول السابق:

بعد تنفيذ جملة إنشاء الجدول السابقة، ينتج لدينا جدول فارغ بالشكل التالي:

نستطيع أن نملأ الجدول بالبيانات باستخدام جملة الإضافة والتي سوف نتكلم عنها في مقال قادم.

لإنشاء نفس الجدول السابق بحيث يتضمن وجود قيود على مستوى الأعمدة، ننفذ الجملة التالية:

أضفنا في الجملة السابقة، قيودا على مستوى أعمدة الجدول، بحيث يُعرَّف العمود PersonID بأنه المفتاح الرئيسي للجدول، والأعمدة Last_Name و Address بأنها لا تستقبل القيم الفارغة.

في حال أردنا أن نضيف عمودًا جديدًا للجدول باسم Age (العمر) ومن نوع البيانات رقم نستخدم جملة التعديل التالية:

تمكن ترجمة الأمر على النحو التالي: “عدّل الجدول Persons بإضافة عمود اسمه Age ونوعه int“.

في حال أردنا أن نحذف عمود City من الجدول نستخدم الجملة التالية:


أي: “عدّل الجدول Persons بحذف العمود City“.

إذا أردنا تعديل نوع عمود Age إلى نص بدلا من رقم نستخدم الجملة التالية:

ذكرنا خلال هذا المقال مصطلحي القيود ونوع البيانات في العمود.

ولكن ما هي القيود؟ وماذا نستفيد منها في قواعد البيانات؟ وما هي أنواع البيانات التي من الممكن التعامل معها؟

يقدّم المقال القادم شرحا تفصيليا عن القيود وأنواعها، وكذلك سيشرح المقال الأنواع التي من الممكن أن نتعامل معها.3


نشر 20 فبراير


جزاكم الله خيرا


نشر 30 مايو

معنى كلمة sql


جزاك الله خير الجزاء


 


نشر 15 نوفمبر

جزاك الله أخي الكريم ولكن لدي مشكلة في أمر التعديل، لا يشتغل.

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

يستغرق التسجيل بضع ثوان فقط

تملك حسابا مسجّلا بالفعل؟


اعرض جميع التصنيفات  

بواسطة
أسماء عبدالله محمود النظاري نُشر منذ 5 ساعات


بواسطة
Farah Associates نُشر منذ 13 ساعات


بواسطة
Mohammed Aladimi نُشر منذ 19 ساعات


بواسطة
English Teacher نُشر أمس الساعة 16:32


بواسطة
Marah Mujahed نُشر أمس الساعة 16:26

© 2020 Hsoub. Content licensed under CC BY-NC-SA 4.0 unless mentioned otherwise.All rights reserved.

السلام عليكم

sql او Structured Query Language ( لغة الاستعلامات البنيوية )

هي لغة قواعد البيانات (لغة برمجة غير إجرائية Non Procedural Language) لذلك فإن تركيب لغة الاستعلامات البنائية هي لغة للتعامل والتحكم مع قواعد البيانات المترابطة من خلال التعامل مع تراكيب البيانات

في يونيو 1970 نشر العالم البريطاني إدجار كود ورقة علمية بعنوان “نموذج مترابط للبيانات في مستودعات البيانات الضخمة المشتركة A Relational Model of Data for Large Shared Data Banks” قدم فيها نموذجا لإنشاء وإدارة قواعد البيانات عرف باسم نموذج قاعدة البيانات المترابطة Relational Database Model

تتركب لغة الاستعلامات البنائية من عدد من الكلمات المحجوزة، ويمكن تقسيم هذه الكلمات المحجوزة تبعًا لوظائفها التي تقوم بها إلى ثلاثة أقسام رئيسة هي:

معنى كلمة sql

لغة تعريف البيانات (Data Definition Language (DDL

لغة معالجة البيانات (Data Manipulation Language (DML

لغة التحكم بالبيانات (Data Control Language (DCL

أوراكل من الشركة المعروفة بنفس الاسم

ماي إس كيو إل (بالإنجليزية: MySQL) من شركة MySQL AB

ميكروسوفت إس كيو إل سيرفر

DB2 من شركة آي‌ بي‌ إم

Borland Interbase من شركة بورلاند

هذا الموضوع جزء منه من ويكي المزيد من المعلومات

لا يوجد تعليقات بعد، كن أول من يبدأ النقاش

مجتمع لغة التعامل مع قواعد البيانات SQL

SQL !!! – : asp-igout

  sql
SQL  Structured Query Language  ( ) , PHP  , , SQL  MySQL  , SQL   access Mysql oracle sql server … SQL SQL PLSQL ….
SQL
SQL
1
2
3
4
5
6
7
8
9
10
11 ( , , 10 , …)
?

 

:
SQL 
:
CREATE DATEBASE mydbname;
, ( mydbname) .  
mydbname  brahim  db  ,
 
:
DROP DATABASE mydbname;

CREATE TABLE tablname (
 Falid1 type null or not null ,
 Falid2 type null or not null ,
);   
, , tablname ,   
Falid1 , Falid2  : Falid1  Falid2 .  
Type  :
Null or not null  : .
, , :
 

TINYINT()

SMALLINT()

MEDIUMINT()

INT()

INTEGER()

INT
BIGINT()

 

DATE

,, YYYY-MM-DD
TIME

,, HH:MM:SS
DATETIME

,,
YYY-MM-DDHH:MM:SS
TIMESTAMP()

YEAR()

 

TINYBLOB

BLOB
TINYTEXT

TEXT
BLOB

BLOB
TEXT

TEXT
MEDIUMBLOB

BLOB
MEDIUMTEXT

TEXT
LONGBLOB

BLOB
LONGTEXT

TEXT
TEXT BLOB
 

CHAR

1 255
VARCHAR

4 , :  
: , () .
:
:
:
  .
: , INT()  
, !.. 1   , 2 , !! !!   .  
, .  
   auto_increment + 1 , SQL .
id identify INT  : auto_increment .  
name varchar .  
phone INT  
varchar domin .
varchar   .  
, client
  :
CREATE TABLE client (
 id INT(9) NOT NULL auto_increment ,
 name varchar(200) NOT NULL ,
 phone INT(9) NOT NULL ,
 domin varchar(150) NOT NULL ,
 primary key (id)
);

!! ,
:
DELETE FROM tablename;
!   
WHERE
00123456
:
DELETE FROM tablename where phone = 00123456;

 
DROP TABLE tablename;

  
INSERT INTO tablename VALUES (‘info1′,’info2’);

INSERT INTO client VALUES (‘NULL’,’brahim’,’1234567′,’yahoo.com’);

INSERT INTO client(id,name,domin) VALUES (‘NULL’,’brahim’,’yahoo.com’);

:
DELETE FROM client WHERE domin=’yahoo.com’;

:
UPDATE client SET name=’ahmed’;

yahoo.com
UPDATE client SET phone=’87654321′ WHERE domin=’yahoo.com’;

:
SELECT * FROM tablename;

SELECT phone FROM client;

  brahim .
SELECT * FROM client WHERE name=’brahim’;

, WHERE , WHERE .

=

!=

 

=

LIKE

 
— —  ..
 

معنى كلمة sql



هل نسيت رقمك السري ؟


بواسطة
Shadi Habbal, 14 Oct 2008


تم النشر منذ 14 Oct 2008

(معدل)

بسم الله الرحمن الرحيم،

معنى كلمة sql

1/ ما معنى SQL injection

وفي الصفحة التي تظهر للمستخدم يوجد نموذج FORM بالشكل التالي:

عند النقر على زر Submit فإن النموذج يقوم بإرسال قيم الحقول name و pass إلى الصفحة login.php التي تحوي على جملة SQL السابقة.

لو قام المهاجم بإدخال النص التالي كاسم مستخدم (نفرض وجوده في الجدول):

وقام بإدخال كلمة مرور بالشكل:

فما يحصل هو أن القيم أعلاه سيتم إضافتها ضمن جملة SQL كقيم متغيرات لتصبح الجملة أثناء التنفيذ بالشكل التالي:

لاحظ كيف أنه يتم نفي احتمال كون كلمة السر فارغة من خلال استخدام الشرط المنطقي OR

وتبديله بعبارة محققة دوماً، 1=1

من ثم إدخال ; والتي تعني نهاية الجملة الشرطية

من ثم — التي تعني اعتبار كل ما يليها كتعليق لا يتم أخذه بعين الاعتبار أثناء التنفيذ (لتجنب الأخطاء التي قد تظهر في جملة SQL معقدة أكثر)

في مثل هذا الاستغلال فإن المهاجم قام بالحصول على صلاحيات الحساب admin وبدون إدخال أي كلمة مرور.

يمكن استغلال SQL injection للحصول على صلاحيات، لسرقة جداول كاملة قد تحوي على بيانات شخصية أو بيانات هامة وسرّية (بطاقات الائتمان في موقع تجاري) والعديد من الأمور الأخرى.

  • بما أن جمل SQL لا تظهر للمهاجم وتختلف من موقع لآخر فيكون هناك عمل ينتظر المهاجم في كتابة استغلالات أكثر تعقيداً من المثال أعلاه للحصول على صلاحيات أو بيانات ما من جدول معين، فمجرد عدم الحصول على اسم الجدول يمنعه من الحصول على المعلومات الموجوده بداخله لذلك يلجئ المهاجم إلى إدخال استغلالات خاطئة عند التنفيذ تحدث خطأ معالجة تجعل السيرفر يقوم بتلفّظ معلومات لمحاولة توضيح الخطأ وسبب حصوله، غالباً ما تحوي هذه الأخطاء على معلومات مهمة للمهاجم كأن يظهر الخطأ التالي:

    في استغلال خاطئ ( ‘ having 1=1– ) يمكن المهاجم من معرفة الجدول والـ column الذي يعمل فيه ومعلومات أخرى أيضاً مثل GROUP BY التي قد تساهم في توسعة دائرة المعرفة الخاصة به!

    blind SQL injection هو أحد الأنواع عندما يقوم مدير الموقع بتعطيل إظهار معلومات نتيجة استعلامات خاطئة، فلا يظهر شئ للمهاجم، حينها يكون عليه أن يقوم بعمل أكثر وربما يكون من المستحيل بالنسبة له الحصول على نتيجة عندما تفشل محاولاته جميعها في إعطائه ما يريد.


    قام بالرد منذ 22 Oct 2008

    (معدل)

    لاحظ يا X لو كتب الإستعلام بهذا الشكل الغريب :

    ستصبح مشكلة أمام ال injection ! هل يمكن الإلتفاف عليها ؟ طبعا لايوجد إختلاف في الأداء فيما لو كان الإستعلام مجرد سطر واحد :

    معنى كلمة sql


    قام بالرد منذ 22 Oct 2008

    أنت أدرى مني بـ SQL

    المشكلة واضحة

    لكن كيفما كان شكل الاستعلام، ألا تجد أن المشكلة في النهاية هي في ما يتضمنه اسم المستخدم وكلمة المرور وليس فعلاً ما يكون شكل الاستعلام؟

    بمعنى لو قمت بفحص المتغيرات $name و $pass بعد أن تجلبها من الاستعلام وقمت بمسح كل الرموز الممنوعة فيها ثم تنفذ بقية الاستعلامات ألا يحل هذا المشكلة أم هناك شئ تلمّح له غفل عني؟


    قام بالرد منذ 22 Oct 2008

    (معدل)

    لا يا X قصدت أن إنتبه للتفرع الشرطي هنا :

    لو حاولت أن تقوم بعمل Injection بأي طريقة ولأي password لايمكن تخطي هذا الكود , والسبب أن المقارنة هنا تتم على مستوى If في الكود نفسه وليس في RDBMS Server , وحدث ذلك بالجملة المهمة جدا :

    والتي ستقوم بإستقبال جميع ال fields من mysql server لذلك السجل الذي فيه username مدخل , ومن هذه الحقول حقل ال Password , بالتالي هنا أنا لن أسمح أساسا بأن تكون هناك إمكانية لتخطي هذا الكود بعمل SQL Injection لأن كود إختبار الباسورد ببساطة لن يدخل في RDBMS وينفذ 😉

    عموما ذكرت المثال فقط لأعرف هل هناك إمكانيات أخرى …


    قام بالرد منذ 23 Oct 2008

    وماذا عن

    طالما لا أستطيع أن أجرب هذه الأمور بسهولة، أخبرني أنت كيف يكون شكل التنفيذ أساساً في جملة IF؟


    قام بالرد منذ 23 Oct 2008

    (معدل)

    نفرض أن كلمة المرور واليوزر الحقيقيين :

    hgb

    123456

    نفرض البيانات المدخلة كانت :

    جملة If الحقيقية :

    جملة If في التنفيذ ستكون هكذا :

    القيمة true ظهرت من أن هناك مدخل في الجدول بإسم متغير username=hgb من هذا السطر

    ثم تم تحميل قيم الحقول جميعها لليوزر hgb في المصفوفة member أيضا , من هنا في خانة $member[‘password’] ستكون القيمة 123456 الحقيقة لتتم مقارنتها مع ‘ 1 OR 1=1’ , بالتالي لن يتحقق شرط If مهما أدخلت إلا بأن تدخل القيمة من البداية صحيحة 123456 في $_POST[‘passwd’] .


    قام بالرد منذ 23 Oct 2008

    أخبرني أولاً، عندما تقوم بكتابة $pass ضمن الشرط فيتم استبدالها بالقيمة المدخلة + الـ single quotes بشكل اوتوماتيكي دون أن تقوم بكتابة الشكل الآخر

    ؟؟

    سأتابع معك بعد أن تؤكد أو تنفي ما ورد أعلاه فهو يغير الكثير ولم أقم بهذه الأمور منذ وقت طويل.


    قام بالرد منذ 23 Oct 2008

    لا يا X لايتم وضع single quotes بشكل آلي , وإنما وضعتها أنا لتوضيح المقارنة النصية التي ستكون …

    والقيمة التي ستمرر تعتمد على نوع قيمة POST التي وضعت من الأساس في ملف html مثلا , ولتكن على الشكل :

    لاحظ في input type … ولايمكن أن تكون غير TEXT هنا بقية الأنواع :

    type = text|password|checkbox|radio|submit|reset|file|hidden|image|button

    لذلك يجب أن تكون المقارنة نصية في هذه الحال ! ولو أدخلت أي شيء في مكان password field سيظهر كما هو وقت المقارنة .


    قام بالرد منذ 24 Oct 2008

    (معدل)

    السلام عليكــم ورحمـة الله وبركاتــة

    الكود الذى وضعه أخى هيثم بالفعل قوى( لحماية الدخول الغير مصرح به ) لأن الشرط كما ذكر أخى هيثم يتم على مستوى الphp و ليس فى جملة ال sql

    و لكن ….

    إذا كان يطبع أى شئ من مخرجات جملة ال select الأولى يمكن إستغلال هذا بإستخدام union all و عرض محتويات جدول آخر

    أو أخطر من هذا , فإذا كان اليوزر لديه صلاحية , فما المانع من وضع

    مكان اليوزر نيم

    أو أى جملة آخرى ك Insert مثلا

    أو إستخدام ال xp_cmdshell فى الSQLServer

    ملخص كلامى أنه يجب فلترة المدخلات قبل وضعها فى جمل ال mysql فالحيل كثيرة جدا


    قام بالرد منذ 24 Oct 2008

    (معدل)


    قام بالرد منذ 25 Oct 2008

    فعلاً كلامك صحيح H، إخراج المدخلات من استعلام SQL يلغي الخطر تماماً مع الأخذ بعين الاعتبار ما ذكره الأخ أبو محمد.

    الموضوع أخذ مني بعض الوقت حتى استوعبت ما تحاول قوله

    لست على ما يرام هذه الأيام.


    قام بالرد منذ 26 Oct 2008

    إضافة للموضوع :-

    يمكن تلخيص الحماية من ال sql injection أو الحد من حيل ال sqlinjection

    1- منع ال error reporting أى منع البرنامج من أن يخرج أى رسائل خطأ و بهذا لن يستطيع المخترق الحصول على أى معلومات توصله إلى أسماء الجداول أو الحقول الخاصة بقاعدة البيانات و لن يبقى أمامه إلا التخمين ( مثلا : اسم جدول الأعضاء users , members , customers ,…..) و هنا يأتى دور ال table prefix

    2- إستخدام ال table prefix و هى أن تضع حرف أو حرفان فى بداية إسم الجداول ( بهدف عدم تعارض أسماء الجداول إذا كنت تتعامل مع عدة برامج على قاعدة بيانات واحدة و لكننا سنستخدمها هنا للحماية )

    مثلا بدلا من جدول users يصبح ex_users ( على قدر المستطاع إبتعد عن أن يكون ال prefix أول حروف من إسم الموقع أو السكريبت لأنه أول شئ يخطر على بال المخترق فى التخمين )

    3- فلترة المدخلات بإستبدال مثلا الكلمات الضارة مثل drop أو select أو عمل escape مثلا أو أى طريقة بحيث تحد من أمكانية التلاعب فى المدخلات ( كود الأخ أبو محمد رائع فعلا أعجبنى جزء الباسوورد جدا و لكن لى عودة إن شاء الله مع الكود )

    #

    آسف يا Xacker و لكنى لم أستوعب هذه النقطة ؟؟


    قام بالرد منذ 26 Oct 2008

    (معدل)

    خطأ مني، شكراً على التنبيه – كلا POST و GET يمكن استخدامهم في SQL.

    مثال على GET;


    قام بالرد منذ 28 Oct 2008

    القليل من يعترف ، وهذا يدل على معدن الصدق والكثير من يلف ويدور .

    أيضاً من الفوائد في هذا الجانب


    قام بالرد منذ 5 Nov 2008

    قرأت الدرس ،،

    اشكرك X على الدرس الرائع ،،

    يعني واحد يتعلم شوي افضل مما يبقى .. مثل الاطرش بالزفة 😆

    صار زمان لم اقرء دروسك .. منذ ايام دورت الاسمبلي B)

    لو اردت ان اتعلم بهذا المجال ..

    بأي الكتب ابدء؟


    قام بالرد منذ 5 Nov 2008

    (معدل)

    على ما أظن أنه لا يوجد كتب في هذا المجال, ابحث في Google وستجد الكثير من الامثلة الرائعة لتعلم هذا الشيئ, ايضا أنصحك بتعلم SQL أو ليس تعلم و إنما أحتراف كي تستطيع التعامل مع كافة الحالات, و السلام عليكم


    قام بالرد منذ 6 Nov 2008

    هناك كتب في حماية تطبيقات الويب (بالتالي تتعلم !حماية تطبيقات الويب :lol:) لكن للأسف أنا لا أحفظ أسماء الكتب بشكل دقيق وغالباً أقرأ من المواد المنشورة كمحاضرات أو ما شابه. سأنظر عندي عند توفر الوقت عن بعض الأسماء علّي أجد ما يفيد (والوقت ضيّق جداً علي للتنويه).


    قام بالرد منذ 6 Nov 2008

    (معدل)

    كان الله في العون .. جالس تقتل ذبان (بعوض) 😆


    قام بالرد منذ 6 Nov 2008

    من وقت لآخر نعم 🙂


    قام بالرد منذ 7 Nov 2008

    طبعا انا امزح فقط ،، 😉


    قام بالرد منذ 8 Nov 2008

    السلام عليكم

    اخى العزيز اكس

    موضع ممتاز فعلا و شكرا لك عليه و شكرا لاخوة فى التفاعل

    و رايد ان اعرف شئ انا استخدم فى عمليه الاضافة : امر

     

    فعل هذا مامن .. حيث انى اضف بالكود الاتى :

    و شكرا


    قام بالرد منذ 10 Nov 2008

    السلام عليكم

    كنت كتبت موضوع مسبقاً

    عن كيفية حل هذه الثغرة

    في جافا

    أضعه هنا من باب الشيء بالشيء يذكر

    لمحة جافاوية 10:ثغرة الحقن

    بالمناسبة الثغرة مشهورة جداً

    بل تكاد تكون الأشهر

    وجميع لغات البرمجة الحديثة توفر آلية لحلها

    تحياتي


    قام بالرد منذ 7 Dec 2008

    (معدل)

    اى حاجه داخله الداتابيز بأمررها الأول قبل ما ادخلها الداتابيز على mysql_real_escape_string

    اى حاجه خارجة لصفحة ويب بأمررها الأول قبل ما اخرجها للصفحة على htmlentities

    وهى دوال جاهزة متوفرة مع PHP دون اى اكواد اضافية – هل هذا يكفى؟

     

    Expand  –  Plain text

    ; DROP TABLE users; —

    مكان اليوزر نيم

    أو أى جملة آخرى ك Insert مثلا

    أو إستخدام ال xp_cmdshell فى الSQLServer

    ملخص كلامى أنه يجب فلترة المدخلات قبل وضعها فى جمل ال mysql فالحيل كثيرة جدا

    والأفضل استخدام mysql_real_escape_string مع المتغيرات قبل حقنها فى جملة sql

    index.rar


    قام بالرد منذ 22 Feb 2009

    ^^^

    اخي الا تظن انه يمكن تجاوز الداله Mysql_real_escape_string

    عن طريق الامر التالي في خانة اليوزر : or 1=1

    الباس : 44444444444444444444

    ..في امان الله


    قام بالرد منذ 22 Feb 2009

    أليس من المفترض أن تقوم بإدخال ‘ حتى تستطيع أن تقوم بإدخال أمر جديد أخ حازم؟

    و mysql_real_escape_string تعالج قيمة ‘


    قام بالرد منذ 22 Feb 2009

    اخي الا تظن انه يمكن تجاوز الداله Mysql_real_escape_string

    عن طريق الامر التالي في خانة اليوزر : or 1=1

    الباس : 44444444444444444444

    ..في امان الله

    ستتمكن من اضافه تعليقات بعد التسجيل

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .

    جميع الحقوق محفوظه للفريق العربي للبرمجة
    Community Software by Invision Power Services, Inc.

    في العالم الرقمي الذي بتنا نعيش فيه، أصبحت المعلومات والبيانات تتدفق من حولنا كسلاسلَ من أرقامٍ ورموز، وأضحت الحياة تتمثل في قواعد بيانات كبرى تربط كل ما حولنا بعضه ببعض، وتربط قواعد البيانات هذه بجداول منوعة ولغات مختلفة. لكن إن سرحنا بخيالنا نحو تلك البيانات سنقف مذهولين من ضخامتها وكمية المعلومات التي تستوعبها هذه القواعد. فكيف يتم تخزينها والتعامل معها؟ تكمن الإجابة على هذا السؤال في ثلاثة أحرف فقط، إنها لغة SQL. فما هي لغة SQL؟ وما مميزاتها؟ هذا ما سنتعرف عليه سويًا.

    لغة الاستعلام البنيوية Structured Query Language والتي تسمى اختصارًا SQL، هي لغة برمجية قياسية لإدارة قواعد البيانات، وتستخدم للاستعلام عن البيانات وإدراجها وتحديثها وتعديلها.§

    بدأ باحثا IBM ريمون بويس ودونالد شامبرلين تطوير لغة SQL للمرة الأول عام 1970، وقاما عندها بإنشاء لغة البرمجة المعروفة باسم SEQUEL بعد نشر ورقة ادغار فرانك تود العلمية تحت عنوان “نموذج مترابط للبيانات في مستودعات البيانات المشتركة الضخمة” في العام ذاته. إذ اقترح تود في ورقته تلك تمثيل جميع البيانات في قاعدة بيانات بشكل علاقات. وشكّل ذلك الأساس الذي اعتمد عليه بويس وشامبرلين لتطوير لغة SQL . §

    أبصرت اللغة النور بعد عدة سنوات، وكان ذلك عام 1979. ومنذ ذلك الحين اعتبرها المعهد الوطني الأمريكي للمعايير اللغة القياسية المعيارية المعتمدة في قواعد البيانات.

    تتمتع لغة SQL بالعديد من المزايا، وقد تزايد استخمها بشكل كبير في السنوات الأخيرة، وبخاصة كون الشركات تجمع المزيد والمزيد من المعلومات والبيانات التي يتوجب عليها تخزينها بشكل مستمر. وبذكر بعض أهم مزايا هذه اللغة يمكن الحديث عن الآتي:§

    معنى كلمة sql

    بالإضافة لكل المزايا التي ذكرناها، فلا بد من وجود بعض العيوب مثل:§

    ‘أراجيك مجتمع‘.. مُلتقى ومساحة تفاعلية لنشر وتبادل الأفكار والمعرفة بموضوعية وبدون تحّيز.

    مجلتك – موسوعتك الشاملة لما يهمك في مختلف المجالات بالعربي

    لغة SQL أو لغة الاستعلامات البنيوية Structured Query Language هي لغة برمجة استعلامية غير إجرائية خاصة بقواعد البيانات العلائقية من حيث إدارتها والتعامل معها، لذلك هي ليست كما لغات البرمجة الأخرى المعروفة مثل سي وبايثون وجافا وإنما هي أكثر اختصاصية تستخدم لتصميم قواعد البيانات والتعامل مع المعلومات فيها من حيث الإضافة والحذف والتعديل والأرشفة والبحث.

    في هذا المقال سنتعرف بالتفصيل على ماهية لغة SQL ومميزاتها ولماذا تختلف عن باقي لغات البرمجة المعروفة، وعلاقة SQL بقواعد البيانات خاصة إذا ما عرفنا إن هذه اللغة هي ليست اللغة الوحيدة التي يمكن استخدامها للتعامل مع قواعد البيانات على الرغم من إنها اللغة التي استطاعت الحفاظ على وجودها وأهميتها بين العديد من اللغات الأخرى.

    كما أشرنا في المقدمة فأن لغة SQL لغة استعلامات بنيوية الهدف منها التعامل مع قواعد البيانات بالدرجة الأولى، ولا تستخدم في بناء التطبيقات كما لغات البرمجة الأخرى، ويعرف عن SQL وجود نسخة معيارية منها متوافق عليها بشكل دولي على الرغم من إن كل جهة تستخدم في أنظمتها نسخة مطورة من SQL، ولكن النسخة المطورة تكون مبنية في الأساس على المعايير الدولية المتوافقة عليها في الأساس والتي يشرف عليها المعهد الوطني الأمريكي للمعايير ASNI.

    معنى كلمة sql

    بواسطة هذه اللغة يمكنك بناء نظام لإدارة قواعد البيانات وتنفيذ كل الأوامر التي تلزم مستخدمي قاعدة البيانات تلك، حيث تشمل هذه الأوامر:

    صحيح إن SQL هي لغة، وكذلك جافا وسي وبايثون أيضًا لغات، ولكن ليس كل منهما لغة برمجة بذات المعنى. حيث تعد لغة SQL من لغات البرمجة من الجيل الرابع أما اللغات الأخرى مثل سي وسي شارب وجافا فهي من لغات البرمجة من الجيل الثالث.

    لغات الجيل الرابع تستخدم للتعامل مع قواعد البيانات ويشبهها البعض بأنها قريبة من لغة الإنسان، على عكس لغات الجيل الثالث التي لا يمكن استخدامها للتعامل مع القواعد البيانات وتختل في أوامرها وهيكليتها عن لغات الجيل الرابع.

    وبذلك نكون عرفنا ما هي لغة SQL وأهميتها وميزاتها والفرق بينها وبين لغات البرمجة الأخرى المعروفة. إذ تعتبر SQL العمود الفقري لقواعد البيانات على عكس لغات البرمجة الأخرى التي لا يمكن استخدامها للتعامل مع قواعد البيانات.

    ما هي عملة البيتكوين؟ التاريخ والمزايا والعيوب

    ما هو مفهوم نظم المعلومات وتاريخه ومكوناته

    تعرف على مفهوم استضافة مواقع مجانية

    ما هو تخصص علوم الحاسوب؟

    ما مصادر الطاقة المتجددة؟

    ما هي لغات البرمجة وما هي أنواعها المختلفة

    لن يتم نشر عنوان بريدك الإلكتروني.

    تذكر أنه لا يلفظ من قول إلا لديه رقيب عتيد

    Save my name, email, and website in this browser for the next time I comment.

    هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.

    مرحبا، تسجيل الدخول إلى حسابك.

    يرجى إدخال الإجابة بالأرقام:

    يرجى إدخال الإجابة بالأرقام:

    قم بإدخال قيمة مميزة:

    استعادة كلمة المرور الخاصة بك.

    كلمة المرور سترسل إليك بالبريد الإلكتروني.

    يرجى إدخال الإجابة بالأرقام:

    معنى كلمة sql
    معنى كلمة sql
    0

  • دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *