আপনি 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 |
উপস্থিতি: | প্রয়োজন |
প্রকার: | স্ট্রিং |
ত্রুটি উল্লেখ
This section describes the error codes and messages returned and fault variables
set by Edge when this policy triggers an error. This information is important to know if
you are developing fault rules to handle faults. If you want to capture an error and raise your own
custom error, set the continueOnError="true"
attribute on the policy root element.
To learn more, see
What you need to know about policy errors and Handling
faults.
Errors returned from Edge policies follow a consistent format as described in the Error code reference.
Runtime errors
These errors can occur when the policy executes.
Error Code | Message |
---|---|
ExecutionFailed | Failed to execute the RegularExpressionProtection StepDefinition {0}. Reason: {1} |
InstantiationFailed | Failed to instantiate the RegularExpressionProtection StepDefinition {0} |
NonMessageVariable | Variable {0} does not resolve to a Message |
SourceMessageNotAvailable | {0} message is not available for RegularExpressionProtection StepDefinition {1} |
ThreatDetected | Regular Expression Threat Detected in {0}: regex: {1} input: {2} |
VariableResolutionFailed | Failed to resolve variable {0} |
Deployment errors
Error Code | Message | Fix |
---|---|---|
CannotBeConvertedToNodeset | RegularExpressionProtection {0}: Result of xpath {1} cannot be converted to nodeset. Context {2} | build |
DuplicatePrefix | RegularExpressionProtection {0}: Duplicate prefix {1} | build |
EmptyJSONPathExpression | RegularExpressionProtection {0}: Empty JSONPath expression | build |
EmptyXPathExpression | RegularExpressionProtection {0}: Empty XPath expression | build |
InvalidRegularExpression | RegularExpressionProtection {0}: Invalid Regular Expression {1}, Context {2} | build |
JSONPathCompilationFailed | RegularExpressionProtection {0}: Failed to compile jsonpath {1}. Context {2} | build |
NONEmptyPrefixMappedToEmptyURI | RegularExpressionProtection {0}: Non-empty prefix {1} cannot be mapped to empty uri | build |
NoPatternsToEnforce | RegularExpressionProtection {0}: No patterns to enforce in {1} | build |
NothingToEnforce | RegularExpressionProtection {0}: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory | build |
XPathCompilationFailed | RegularExpressionProtection {0}: Failed to compile xpath {1}. Context {2} | build |
Fault variables
These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the table above. | fault.name Matches "ThreatDetected" |
regularexpressionprotection.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | regularexpressionprotection.Regular-Expressions-Protection-1.failed = true |