سؤال

أنا أستخدم jquery ajax لنشر التحديثات مرة أخرى على الخادم الخاص بي.أنا مهتم بالتأكد من أنني قمت باتخاذ التدابير المناسبة حتى تتمكن مكالمات AJAX الخاصة بي فقط من نشر البيانات.

مجموعتي هي PHP على Apache مقابل الواجهة الخلفية لـ MySQL.

نصيحة موضع تقدير كبير!

هل كانت مفيدة؟

المحلول

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

هناك سيناريوهين يمكنني التفكير فيهما قد تتحدث عنهما عندما تقول أنك تريد التأكد من أن مكالمات AJAX الخاصة بك فقط هي التي يمكنها نشر البيانات:إما أنك لا تريد أن يتمكن مستخدم ضار من نشر بيانات تتداخل مع بيانات مستخدم آخر أو أنك تريد بالفعل تقييد المنشورات بحيث تكون في "تدفق" عملية متعددة الطلبات.

إذا كنت مهتمًا بالحالة الأولى (يقوم شخص ما بنشر بيانات ضارة إلى/كمستخدم آخر) فإن الحل هو نفسه سواء كنت تستخدم AJAX أم لا - ما عليك سوى مصادقة المستخدم من خلال أي وسيلة ضرورية - عادةً عبر الجلسة بسكويت.

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

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

نصائح أخرى

استخدم الجلسات للتأكد من أن أي منشورات Ajax تتم في سياق مصادق عليه.فكر في كود Ajax الخاص بك باعتباره مجرد عميل آخر لخادمك، يصبح من الأسهل معالجة مشكلات المصادقة بهذه الطريقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top