"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > लारवेल का ट्रिमस्ट्रिंग्स मिडलवेयर कैसे समस्याएँ पैदा कर सकता है

लारवेल का ट्रिमस्ट्रिंग्स मिडलवेयर कैसे समस्याएँ पैदा कर सकता है

2024-11-08 को प्रकाशित
ब्राउज़ करें:361

How Laravel

लारवेल PHP दुनिया में एक लोकप्रिय ढांचा है, जो डेवलपर्स को उनके काम को सरल बनाने के लिए बेहतरीन टूल प्रदान करता है। हालाँकि, कभी-कभी ये सुविधाएं अप्रत्याशित समस्याओं का कारण बन सकती हैं। इस पोस्ट में, मैं चर्चा करूंगा कि लारवेल में ट्रिमस्ट्रिंग्स मिडलवेयर कैसे समस्याएं पैदा कर सकता है और उन्हें कैसे हल किया जाए।

ट्रिमस्ट्रिंग्स मिडलवेयर क्या है और यह क्या करता है?

ट्रिमस्ट्रिंग्स मिडलवेयर का उपयोग लारवेल अनुप्रयोगों में आने वाले अनुरोध डेटा, जैसे फॉर्म इनपुट से स्वचालित रूप से व्हाइटस्पेस को ट्रिम करने के लिए किया जाता है। यह विशेष रूप से तब उपयोगी होता है जब उपयोगकर्ता गलती से इनपुट फ़ील्ड के आरंभ या अंत में स्थान छोड़ देते हैं। उदाहरण के लिए, यदि कोई उपयोगकर्ता किसी फॉर्म में ईमेल पते के चारों ओर रिक्त स्थान के साथ " [email protected] " दर्ज करता है, तो TrimStrings मिडलवेयर इन रिक्त स्थानों को ट्रिम कर देगा, यह सुनिश्चित करते हुए कि केवल "[email protected]" संसाधित किया गया है .

यह सुविधा अनावश्यक रिक्त स्थान के कारण होने वाली त्रुटियों को रोकने और स्वच्छ डेटा को संभालने के लिए फायदेमंद है। हालाँकि, हमेशा की तरह, कुछ विशेष मामलों में, इस डिफ़ॉल्ट व्यवहार से अनपेक्षित परिणाम हो सकते हैं।

क्या हुआ?

एक परियोजना में जहां हम ब्राजील स्थित भुगतान प्रदाता के साथ एकीकरण कर रहे थे, हमें कॉलबैक सिस्टम के माध्यम से भुगतान परिणामों को पकड़ने और मान्य करने की आवश्यकता थी। भुगतान प्रदाता POST अनुरोध के माध्यम से लेनदेन परिणाम हमारे सर्वर पर भेजता है, और हम हस्ताक्षर/हैश सत्यापन निष्पादित करके अनुरोध को मान्य करते हैं।

यह सत्यापन प्रक्रिया एक सीधे तर्क का पालन करती है:

  1. हम प्रदाता द्वारा भेजा गया डेटा लेते हैं।
  2. सारा डेटा एक ही स्ट्रिंग में संयोजित है।
  3. यह स्ट्रिंग भुगतान प्रदाता द्वारा प्रदान की गई गुप्त कुंजी के साथ SHA256 एल्गोरिदम का उपयोग करके हैश की गई है।
  4. परिणामस्वरूप हैश की तुलना प्रदाता द्वारा भेजे गए हैश से की जाती है। यदि वे मेल खाते हैं, तो अनुरोध स्वीकार कर लिया जाता है; अन्यथा, इसे अस्वीकार कर दिया जाता है।

हमने समस्या की पहचान कैसे की?

शुरुआत में, यह समझना मुश्किल था कि कुछ वैध अनुरोधों को क्यों अस्वीकार किया जा रहा है। हालाँकि, Nginx लॉग का निरीक्षण करने के बाद, हमने देखा कि आने वाले अनुरोध में full_name पैरामीटर ने पिछली जगहों को बरकरार रखा है। इसके बावजूद, हमारे सर्वर पर, इन स्थानों को काट दिया गया था, जिससे हैश सत्यापन विफल हो गया। तभी हमें एहसास हुआ कि ट्रिमस्ट्रिंग्स मिडलवेयर इस समस्या का कारण बन रहा है।

समाधान क्या है?

ऐसी समस्याओं से बचने के लिए, विशिष्ट मार्गों या अनुरोधों के लिए TrimStrings मिडलवेयर को अक्षम करना आवश्यक है। लारवेल 8 ने ट्रिमस्ट्रिंग्स::स्किपव्हेन विधि पेश की, जो इस स्थिति के लिए एक अनुरूप समाधान प्रदान करती है।

किसी प्रदाता का उपयोग करके इस समाधान को कैसे लागू किया जाए इसका एक उदाहरण नीचे दिया गया है:

use Illuminate\Foundation\Http\Middleware\TrimStrings;
use Illuminate\Http\Request;

// ...

TrimStrings::skipWhen(function (Request $request) {
    return $request->is('api/v1/integrations/foo-provider/callback');
});

यह कोड स्निपेट एक विशिष्ट मार्ग के लिए ट्रिमस्ट्रिंग्स मिडलवेयर को अक्षम कर देता है। इस मामले में, एपीआई/वी1/एकीकरण/फू-प्रदाता/कॉलबैक रूट से आने वाले अनुरोधों के लिए ट्रिमिंग नहीं होगी, यह सुनिश्चित करते हुए कि हैश सत्यापन प्रक्रिया सुचारू रूप से काम करती है।

निष्कर्ष

लारवेल की डिफ़ॉल्ट विशेषताएं आम तौर पर चीजों को आसान बनाती हैं, लेकिन कुछ परिदृश्यों में, वे अप्रत्याशित परिणाम दे सकती हैं। इसलिए, यह समझना महत्वपूर्ण है कि हम जिन उपकरणों का उपयोग करते हैं वे कैसे काम करते हैं और उनके संभावित प्रभावों का सावधानीपूर्वक मूल्यांकन करना महत्वपूर्ण है। जबकि TrimStrings मिडलवेयर ज्यादातर मामलों में एक उपयोगी उपकरण है, यह इस तरह के परिदृश्यों में समस्याएं पैदा कर सकता है। सौभाग्य से, ट्रिमस्ट्रिंग्स::स्किपवेन जैसे लचीले समाधान हमें ऐसी समस्याओं से बचने की अनुमति देते हैं।

विज्ञप्ति वक्तव्य इस लेख को इस पर पुनर्मुद्रित किया गया है: https://dev.to/yidemir/how-trimstrings-become-become-a-problem-for-you-in-taravel -o4k?1 यदि कोई उल्लंघन है, तो इसे हटाने के लिए कृपया अध्ययन करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3