আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
কি
একটি বার্তা থেকে তথ্য বের করে (উদাহরণস্বরূপ, URI পাথ, ক্যোয়ারী প্যারাম, হেডার, ফর্ম প্যারাম, ভেরিয়েবল, XML পেলোড, বা JSON পেলোড) এবং পূর্বনির্ধারিত রেগুলার এক্সপ্রেশনের বিপরীতে সেই বিষয়বস্তুকে মূল্যায়ন করে। যদি কোনো নির্দিষ্ট রেগুলার এক্সপ্রেশন সত্যে মূল্যায়ন করা হয়, তাহলে বার্তাটিকে হুমকি হিসেবে বিবেচনা করা হয় এবং প্রত্যাখ্যান করা হয়।
ভিডিও
নিয়মিত অভিব্যক্তি সুরক্ষা নীতি সম্পর্কে আরও জানতে নিম্নলিখিত ভিডিওগুলি দেখুন৷
ভিডিও | বর্ণনা |
---|---|
এসকিউএল ইনজেকশন আক্রমণ থেকে রক্ষা করা (নতুন প্রান্ত) | নিউ এজ এক্সপেরিয়েন্স UI-তে নিয়মিত এক্সপ্রেশন সুরক্ষা নীতি ব্যবহার করে SQL ইনজেকশন আক্রমণ থেকে রক্ষা করুন। |
এসকিউএল ইনজেকশন আক্রমণ থেকে রক্ষা করা (ক্লাসিক এজ) | ক্লাসিক এজ UI-তে রেগুলার এক্সপ্রেশন সুরক্ষা নীতি ব্যবহার করে SQL ইনজেকশন আক্রমণ থেকে রক্ষা করুন। |
নমুনা
গিটহাব
GitHub-এ regex-সুরক্ষার নমুনা ব্যাখ্যা করে যে কীভাবে একটি ক্যোয়ারী প্যারামিটারের মাধ্যমে জারি করা সম্ভাব্য এসকিউএল ইনজেকশন আক্রমণকে আটকাতে হয়। এছাড়াও, নমুনাটি একটি জেনেরিক 400 এরর স্ট্যাটাস সেট করার একটি ভাল অভ্যাসকে চিত্রিত করে যাতে হ্যাকাররা প্রতিক্রিয়া থেকে কোনো দরকারী তথ্য লাভ করতে না পারে।
জাভাস্ক্রিপ্ট আক্রমণ সুরক্ষা অন্তর্ভুক্ত
<RegularExpressionProtection name="JsonPathRegExProtection"> <DisplayName>Regular Expression Protection 1</DisplayName> <Source>request</Source> <JSONPayload escapeSlashCharacter="true"> <JSONPath> <Expression>$</Expression> <Pattern><\s*script\b[^>]*>[^<]+<\s*\/\s*script\s*> </Pattern> <Pattern>n\s*\\\\\s*slash</Pattern> <Pattern>n\s*\/\s*slash</Pattern> <Pattern>n\s*\\"\s*quotes</Pattern> <Pattern>n\s*\\b\s*space</Pattern> <Pattern>n\s*\\f\s*forwardfeed</Pattern> <Pattern>n\s*\\n\s*newline</Pattern> <Pattern>n\s*\\r\s*carria</Pattern> <Pattern>n\s*\\t\s*tab</Pattern> <Pattern>n\s*\\uFFFF\s*hex</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
উপরের নমুনাটি ব্যাখ্যা করে যে কীভাবে জাভাস্ক্রিপ্টের জন্য JSON পেলোডের মূল্যায়ন করতে RegularExpressionProtection নীতি ব্যবহার করতে হয় আক্রমণ অন্তর্ভুক্ত। বিশেষভাবে, <JSONPath>
/ <Expression>
দ্বারা নিষ্কাশিত বিষয়বস্তুকে <JSONPath>
/ <Pattern>
-এ রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়ন করা হয়।
যদি আপনার <JSONPath>
/ <Pattern>
-এর রেগুলার এক্সপ্রেশনে XML-সংরক্ষিত অক্ষর (", &, ', <, or .) অন্তর্ভুক্ত থাকে, তাহলে নীতি XML কনফিগারেশন ফাইলে অন্তর্ভুক্ত করার আগে আপনাকে অবশ্যই XML-এনকোড করতে হবে। উদাহরণস্বরূপ , উপরের নমুনায়, রেগুলার এক্সপ্রেশন <\s*script\b[^>]*>[^<]+<\s*\/\s*script\s*>
XML-এনকোড করা হয়েছে <\s*script\b[^>]*>[^<]+<\s*\/\s*script\s*>
অতিরিক্তভাবে, যদি আপনার রেগুলার এক্সপ্রেশনে ফরোয়ার্ড স্ল্যাশ (/) অন্তর্ভুক্ত থাকে, তাহলে আপনাকে অবশ্যই <JSONPayload>
escapeSlashCharacter
অ্যাট্রিবিউটটিকে true
এ সেট করে এড়িয়ে যেতে হবে।
কেস সংবেদনশীল ম্যাচিং
কেস-অসংবেদনশীল ম্যাচিং করতে এটি একটি সাধারণ ব্যবহারের ক্ষেত্রে। কনস্ট্রাক্ট (?i)
ব্যবহার করে রেগুলার এক্সপ্রেশনে আপনি কীভাবে তা সম্পন্ন করতে পারেন তার একটি উদাহরণ এখানে দেওয়া হল। এই উদাহরণে, উদাহরণস্বরূপ, DELETE
, delete
, এবং Delete
সত্য হিসাবে মূল্যায়ন করা হবে৷
<Pattern>[\s]*(?i)((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b))</Pattern>
রেগুলার এক্সপ্রেশন সুরক্ষা নীতি সম্পর্কে
Apigee Edge আপনাকে রেগুলার এক্সপ্রেশন কনফিগার করতে সক্ষম করে যেগুলি নির্দিষ্ট প্যাটার্ন অনুসরণ করে এমন সাধারণ বিষয়বস্তু-স্তরের হুমকি সনাক্ত করতে রানটাইমে API ট্র্যাফিকের বিরুদ্ধে মূল্যায়ন করা যেতে পারে।
একটি রেগুলার এক্সপ্রেশন বা সংক্ষেপে রেজেক্স হল স্ট্রিংগুলির একটি সেট যা একটি স্ট্রিং-এ একটি প্যাটার্ন নির্দিষ্ট করে। রেগুলার এক্সপ্রেশন সামগ্রীকে প্যাটার্নের জন্য প্রোগ্রাম্যাটিকভাবে মূল্যায়ন করতে সক্ষম করে। রেগুলার এক্সপ্রেশন ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ, একটি ইমেল ঠিকানা মূল্যায়ন করার জন্য এটি সঠিকভাবে গঠন করা হয়েছে কিনা তা নিশ্চিত করতে। আরও তথ্যের জন্য, জাভা টিউটোরিয়ালগুলিতে রেগুলার এক্সপ্রেশন দেখুন।
RegularExpressionProtection-এর সবচেয়ে সাধারণ ব্যবহার হল ক্ষতিকর বিষয়বস্তুর জন্য JSON এবং XML পেলোডের মূল্যায়ন।
কোনও নিয়মিত অভিব্যক্তি সমস্ত বিষয়বস্তু-ভিত্তিক আক্রমণকে নির্মূল করতে পারে না, এবং ডিফেন্স-ইন-ডেপ্থ সক্ষম করতে একাধিক প্রক্রিয়া একত্রিত করা উচিত। এই বিভাগটি বিষয়বস্তু বাদ দেওয়ার জন্য কিছু প্রস্তাবিত নিদর্শন বর্ণনা করে।
উদাহরণ বর্জন নিদর্শন
নীতির XML কনফিগারেশন ফাইলে রেগুলার এক্সপ্রেশন অবশ্যই XML-এনকোডেড হতে হবে।
নাম | নিয়মিত অভিব্যক্তি |
---|---|
এসকিউএল ইনজেকশন | [\s]*((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b)) |
সার্ভার-সাইড ইনজেকশন অন্তর্ভুক্ত | <!--#(include|exec|echo|config|printenv)\s+.* XML এনকোডেড: <!--#(include|exec|echo|config|printenv)\s+.* |
XPath সংক্ষিপ্ত সিনট্যাক্স ইনজেকশন | (/(@?[\w_?\w:\*]+(\[[^]]+\])*)?)+ |
XPath প্রসারিত সিনট্যাক্স ইনজেকশন | /?(ancestor(-or-self)?|descendant(-or-self)?|following(-sibling)) |
জাভাস্ক্রিপ্ট ইনজেকশন | <\s*script\b[^>]*>[^<]+<\s*/\s*script\s*> XML এনকোডেড: <\s*script\b[^>]*>[^<]+<\s*/\s*script\s*> |
জাভা ব্যতিক্রম ইনজেকশন | .*?Exception in thread.* |
একটি XML বা JSON পেলোড সহ একটি অনুরোধে সামগ্রী-প্রকার শিরোনাম সেট করুন৷
রেগুলার এক্সপ্রেশন সুরক্ষা নীতির পেলোডে নিম্নলিখিত উপাদানগুলি অন্তর্ভুক্ত থাকতে পারে:
-
<XMLPayload>
উপাদান: নির্দিষ্ট করে যে তথ্য একটি XML পেলোড থেকে বের করা এবং প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়ন করা প্রয়োজন।আপনি যদি নীতিতে
<XMLPayload>
ব্যবহার করেন, অনুরোধেরContent-Type
শিরোনামটি অবশ্যই একটি XML বিষয়বস্তু-টাইপ যেমনapplication/xml
বাtext/xml
হতে হবে। -
<JSONPayload>
উপাদান: নির্দিষ্ট করে যে তথ্য একটি JSON পেলোড থেকে বের করতে হবে এবং প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়ন করতে হবে।আপনি যদি নীতিতে
<JSONPayload>
ব্যবহার করেন, তাহলে অনুরোধেরContent-Type
শিরোনামটি অবশ্যই JSON বিষয়বস্তু-টাইপ যেমনapplication/json
হতে হবে।
সাধারণত আপনি XML বা JSON গ্রহণ করার জন্য একটি API ডিজাইন করেন। যাইহোক, এমন একটি পরিস্থিতি হতে পারে যেখানে API উভয়ই গ্রহণ করেছে। তারপরে আপনি একটি রেগুলার এক্সপ্রেশন সুরক্ষা নীতি নির্ধারণ করতে পারেন যা <XMLPayload>
এবং <JSONPayload>
উপাদান উভয়ই ব্যবহার করে। Content-Type
হেডারের মানের উপর ভিত্তি করে একটি নির্দিষ্ট অনুরোধের জন্য শুধুমাত্র একটি উপাদান প্রযোজ্য হবে।
উপাদান রেফারেন্স
উপাদান রেফারেন্স রেগুলার এক্সপ্রেশন সুরক্ষা নীতির উপাদান এবং বৈশিষ্ট্য বর্ণনা করে।
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection 1</DisplayName> <Source>response</Source> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <URIPath> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </URIPath> <QueryParam name="a-query-param"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </QueryParam> <Header name="a-header"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </Header> <FormParam name="a-form-param"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </FormParam> <Variable name="request.content"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </Variable> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> <JSONPayload> <JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
<RegularExpressionProtection> অ্যাট্রিবিউট
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:
বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
---|---|---|---|
name | নীতির অভ্যন্তরীণ নাম। ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে | N/A | প্রয়োজন |
continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
enabled | নীতি প্রয়োগ করতে নীতি বন্ধ করতে | সত্য | ঐচ্ছিক |
async | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName> উপাদান
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name
বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।
<DisplayName>Policy Display Name</DisplayName>
ডিফল্ট | N/A আপনি এই উপাদানটি বাদ দিলে, নীতির |
---|---|
উপস্থিতি | ঐচ্ছিক |
টাইপ | স্ট্রিং |
<উৎস> উপাদান
যে বার্তা থেকে তথ্য বের করা প্রয়োজন তা নির্দেশ করে।
যদি <Source>
উপাদানটি বাদ দেওয়া হয়, মানটি message
ডিফল্ট হয়। উদাহরণস্বরূপ, <Source>message</Source>
। message
সেট করা হলে, অনুরোধের প্রবাহের সাথে সংযুক্ত হলে নীতি অনুরোধ বার্তাটিকে উৎস হিসেবে ব্যবহার করে। একইভাবে, নীতিটি প্রতিক্রিয়া বার্তা ব্যবহার করে যখন একটি প্রতিক্রিয়া প্রবাহের সাথে সংযুক্ত থাকে।
যদি উত্স বার্তাটি সমাধান করা না যায় বা যদি এটি একটি অ-মেসেজ টাইপের সমাধান করে তবে নীতিটি একটি ত্রুটি প্রদান করে৷
<Source>response</Source>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | স্ট্রিং |
<অমীমাংসিত ভেরিয়েবল> এলিমেন্টকে উপেক্ষা করুন
পলিসিটি একটি ত্রুটি প্রদান করে কিনা তা নির্ধারণ করে যখন এটি একটি অমীমাংসিত পরিবর্তনশীলের সম্মুখীন হয়।
false
(ডিফল্ট) তে সেট করা থাকলে, একটি অমীমাংসিত পরিবর্তনশীলের সম্মুখীন হলে নীতিটি একটি ত্রুটি প্রদান করে। true
সেট করা হলে, অমীমাংসিত চলকটিকে খালি স্ট্রিং (নাল) হিসাবে গণ্য করা হয়।
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
ডিফল্ট: | মিথ্যা |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | বুলিয়ান |
<URIPath> উপাদান
নির্দিষ্ট করে যে তথ্য অনুরোধ URI পাথ থেকে বের করা এবং প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়ন করা প্রয়োজন। আপনাকে অবশ্যই একটি রেগুলার এক্সপ্রেশন প্যাটার্ন নির্দিষ্ট করে অন্তত একটি <Pattern>
উপাদান প্রদান করতে হবে।
<URIPath> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </URIPath>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | N/A |
<QueryParam> উপাদান
নির্দিষ্ট করে যে তথ্য অনুরোধের ক্যোয়ারী প্যারামিটার থেকে বের করা এবং প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়ন করা প্রয়োজন। আপনাকে অবশ্যই একটি রেগুলার এক্সপ্রেশন প্যাটার্ন নির্দিষ্ট করে অন্তত একটি <Pattern>
উপাদান প্রদান করতে হবে।
<QueryParam name="a-query-param"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </QueryParam>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | N/A |
গুণাবলী
বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
---|---|---|---|
নাম | অনুরোধের ক্যোয়ারী প্যারামিটারের নাম যেখান থেকে প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়নের জন্য তথ্য বের করতে হবে। | N/A | প্রয়োজন |
<হেডার> উপাদান
নির্দিষ্ট করে যে তথ্য অনুরোধ এবং প্রতিক্রিয়া শিরোনাম থেকে বের করা প্রয়োজন এবং প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়ন করা প্রয়োজন। আপনাকে অবশ্যই একটি রেগুলার এক্সপ্রেশন প্যাটার্ন নির্দিষ্ট করে অন্তত একটি <Pattern>
উপাদান প্রদান করতে হবে।
<Header name="a-header"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </Header>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | N/A |
গুণাবলী
বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
---|---|---|---|
নাম | অনুরোধের নাম এবং প্রতিক্রিয়া শিরোনাম যেখান থেকে প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়নের জন্য তথ্য বের করতে হবে। | N/A | প্রয়োজন |
<FormParam> উপাদান
নির্দিষ্ট করে যে তথ্য অনুরোধ ফর্ম প্যারামিটার থেকে বের করা দরকার এবং প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়ন করা দরকার। আপনাকে অবশ্যই একটি রেগুলার এক্সপ্রেশন প্যাটার্ন নির্দিষ্ট করে অন্তত একটি <Pattern>
উপাদান প্রদান করতে হবে।
<FormParam name="a-form-param"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </FormParam>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | N/A |
গুণাবলী
বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
---|---|---|---|
নাম | অনুরোধ ফর্মের প্যারামিটারের নাম যেখান থেকে প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়নের জন্য তথ্য বের করতে হবে। | N/A | প্রয়োজন |
<ভেরিয়েবল> উপাদান
নির্দিষ্ট করে যে তথ্য প্রদত্ত ভেরিয়েবল থেকে বের করা এবং প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়ন করা দরকার।
<Variable name="request.content"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </Variable>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | N/A |
গুণাবলী
বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
---|---|---|---|
নাম | প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়নের জন্য যে ভেরিয়েবল থেকে তথ্য বের করতে হবে তার নাম। | N/A | প্রয়োজন |
<XMLPayload> উপাদান
নির্দিষ্ট করে যে তথ্য একটি XML পেলোড থেকে বের করা এবং প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়ন করা প্রয়োজন।
<XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | N/A |
<XMLPayload>/<নেমস্পেস> উপাদান
XPath মূল্যায়নে ব্যবহার করার জন্য নামস্থান নির্দিষ্ট করে।
<XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | স্ট্রিং |
<XMLPayload>/<Namespaces>/<Namespace> উপাদান
XPath মূল্যায়নে ব্যবহৃত প্রতিটি নামস্থান নির্দিষ্ট করে।<Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | স্ট্রিং |
গুণাবলী
বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
---|---|---|---|
উপসর্গ | একটি প্রদত্ত নামস্থান যোগ্যতা অর্জনে সহায়তা করার জন্য একটি উপসর্গ প্রদান করে। | N/A | প্রয়োজন |
<XMLPayload>/<XPath> উপাদান
মূল্যায়ন করার জন্য XPath নির্দিষ্ট করে।<XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | N/A |
<XMLPayload>/<XPath>/<এক্সপ্রেশন> উপাদান
ভেরিয়েবলের জন্য সংজ্ঞায়িত XPath এক্সপ্রেশন নির্দিষ্ট করে। শুধুমাত্র XPath 1.0 এক্সপ্রেশন সমর্থিত। উদাহরণস্বরূপ,<Expression>/company/employee[@age>=$request.header.age]</Expression>
কর্মচারীদের বিশদ বিবরণ বের করে যাদের বয়স request.header.age
এ উল্লেখিত মানের থেকে বেশি বা সমান।<XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | স্ট্রিং |
<XMLPayload>/<XPath>/<Type> উপাদান
ডেটাটাইপ নির্দিষ্ট করে।<XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath>
ডিফল্ট: | স্ট্রিং |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | স্ট্রিং |
বৈধ মান: | স্ট্রিং বৈধ মানগুলির মধ্যে রয়েছে |
<XMLPayload>/<XPath>/<প্যাটার্ন> উপাদান
রেগুলার এক্সপ্রেশন প্যাটার্ন সংজ্ঞায়িত করে। যদি আপনার <Pattern>
উপাদানের একটি রেগুলার এক্সপ্রেশনে XML-সংরক্ষিত অক্ষর (", &, ', <, or .) অন্তর্ভুক্ত থাকে, তাহলে এটি অন্তর্ভুক্ত করার আগে আপনাকে অবশ্যই XML-এনকোড করতে হবে।
<XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath>
ডিফল্ট: | N/A |
উপস্থিতি: | প্রয়োজন |
প্রকার: | স্ট্রিং |
<JSONPayload> উপাদান
নির্দিষ্ট করে যে তথ্য একটি JSON পেলোড থেকে বের করা এবং প্রদত্ত রেগুলার এক্সপ্রেশনের বিপরীতে মূল্যায়ন করা প্রয়োজন।
<JSONPayload> <JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | N/A |
গুণাবলী
বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
---|---|---|---|
escapeSlashCharacter | | সত্য | ঐচ্ছিক |
<JSONPayload>/<JSONPath>/<এক্সপ্রেশন> উপাদান
ভেরিয়েবলের জন্য সংজ্ঞায়িত JSONPath এক্সপ্রেশন নির্দিষ্ট করে।
<JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath>
ডিফল্ট: | N/A |
উপস্থিতি: | ঐচ্ছিক |
প্রকার: | স্ট্রিং |
<JSONPayload>/<JSONPath>/<প্যাটার্ন> উপাদান
রেগুলার এক্সপ্রেশন প্যাটার্ন সংজ্ঞায়িত করে। যদি আপনার <Pattern>
উপাদানের একটি রেগুলার এক্সপ্রেশনে XML-সংরক্ষিত অক্ষর (", &, ', <, or .) অন্তর্ভুক্ত থাকে, তাহলে এটি অন্তর্ভুক্ত করার আগে আপনাকে অবশ্যই XML-এনকোড করতে হবে।
<JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath>
ডিফল্ট: | N/A |
উপস্থিতি: | প্রয়োজন |
প্রকার: | স্ট্রিং |
ত্রুটি উল্লেখ
এই বিভাগে ত্রুটি কোড এবং বার্তা ফেরত এবং এজ দ্বারা সেট করা ত্রুটি ভেরিয়েবল বর্ণনা করে যখন এই নীতি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আপনি যদি একটি ত্রুটি ক্যাপচার করতে চান এবং আপনার নিজস্ব কাস্টম ত্রুটি বাড়াতে চান, তাহলে নীতির মূল উপাদানটিতে continueOnError="true"
অ্যাট্রিবিউট সেট করুন। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷
এজ নীতিগুলি থেকে ফিরে আসা ত্রুটিগুলি ত্রুটি কোড রেফারেন্সে বর্ণিত একটি সামঞ্জস্যপূর্ণ বিন্যাস অনুসরণ করে৷
রানটাইম ত্রুটি
নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷
ভুল সংকেত | বার্তা |
---|---|
কার্যকর করা ব্যর্থ হয়েছে৷ | RegularExpressionProtection Step Definition {0} কার্যকর করতে ব্যর্থ হয়েছে৷ কারণ: {1} |
প্রতিষ্ঠা ব্যর্থ হয়েছে৷ | RegularExpressionProtection স্টেপ ডেফিনিশন ইনস্ট্যান্ট করতে ব্যর্থ হয়েছে {0} |
NonMessage Variable | পরিবর্তনশীল {0} কোনো বার্তার সমাধান করে না |
SourceMessageNotAvailable | RegularExpressionProtection ধাপ সংজ্ঞার জন্য {0} বার্তা উপলব্ধ নয় {1} |
হুমকি সনাক্ত করা হয়েছে | রেগুলার এক্সপ্রেশন থ্রেট {0} এ সনাক্ত করা হয়েছে: regex: {1} ইনপুট: {2} |
পরিবর্তনশীল রেজোলিউশন ব্যর্থ হয়েছে | পরিবর্তনশীল {0} সমাধান করতে ব্যর্থ হয়েছে |
স্থাপনার ত্রুটি
ভুল সংকেত | বার্তা | ঠিক করুন |
---|---|---|
নোডেসেটে কনভার্ট করা যাবে না | RegularExpressionProtection {0}: xpath {1}-এর ফলাফল নোডসেটে রূপান্তর করা যাবে না। প্রসঙ্গ {2} | build |
সদৃশ উপসর্গ | RegularExpressionProtection {0}: ডুপ্লিকেট প্রিফিক্স {1} | build |
EmptyJSONPathExpression | RegularExpressionProtection {0}: খালি JSONPath এক্সপ্রেশন | build |
EmptyXPathExpression | রেগুলার এক্সপ্রেশন প্রোটেকশন {0}: খালি XPath এক্সপ্রেশন | build |
অবৈধ রেগুলার এক্সপ্রেশন | RegularExpressionProtection {0}: অবৈধ রেগুলার এক্সপ্রেশন {1}, প্রসঙ্গ {2} | build |
JSONPath কম্পাইলেশন ব্যর্থ হয়েছে | RegularExpressionProtection {0}: jsonpath {1} কম্পাইল করতে ব্যর্থ। প্রসঙ্গ {2} | build |
NONEmptyPrefixMappedToEmptyURI | RegularExpressionProtection {0}: খালি উপসর্গ {1} খালি ইউরিতে ম্যাপ করা যাবে না | build |
কোন প্যাটার্নস টোএনফোর্স | RegularExpressionProtection {0}: {1} এ প্রয়োগ করার জন্য কোনো প্যাটার্ন নেই | build |
এনফোর্স করার জন্য কিছুই নয় | RegularExpressionProtection {0}: URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload এর মধ্যে অন্তত একটি বাধ্যতামূলক | build |
XPath কম্পাইলেশন ব্যর্থ হয়েছে | RegularExpressionProtection {0}: xpath {1} কম্পাইল করতে ব্যর্থ। প্রসঙ্গ {2} | build |
ফল্ট ভেরিয়েবল
যখন এই নীতি একটি ত্রুটি ট্রিগার করে তখন এই ভেরিয়েবলগুলি সেট করা হয়৷ আরও তথ্যের জন্য, নীতি ত্রুটি সম্পর্কে আপনার যা জানা দরকার তা দেখুন।
ভেরিয়েবল | কোথায় | উদাহরণ |
---|---|---|
fault.name=" fault_name " | fault_name হল ফল্টের নাম, উপরের টেবিলে তালিকাভুক্ত। | fault.name Matches "ThreatDetected" |
regularexpressionprotection. policy_name .failed | policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। | regularexpressionprotection.Regular-Expressions-Protection-1.failed = true |