আমি আমার অ্যাপ্লিকেশনটির ওয়েব.এক্সএমএলগুলিতে পুট, ডিলেট, ইত্যাদি বাতিল করার চেষ্টা করার জন্য নিম্নলিখিতটি রেখেছি put
<security-constraint>
<web-resource-collection>
<web-resource-name>restricted methods</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>PUT</http-method>
<http-method>SEARCH</http-method>
<http-method>COPY</http-method>
<http-method>MOVE</http-method>
<http-method>PROPFIND</http-method>
<http-method>PROPPATCH</http-method>
<http-method>MKCOL</http-method>
<http-method>LOCK</http-method>
<http-method>UNLOCK</http-method>
<http-method>delete</http-method>
<http-method>put</http-method>
<http-method>search</http-method>
<http-method>copy</http-method>
<http-method>move</http-method>
<http-method>propfind</http-method>
<http-method>proppatch</http-method>
<http-method>mkcol</http-method>
<http-method>lock</http-method>
<http-method>unlock</http-method>
</web-resource-collection>
<auth-constraint />
</security-constraint>
ঠিক আছে, তাই এখন:
আমি যদি পদ্ধতিতে অনুরোধ করি তবে আমি DELETE
403 ফিরে পাব।
আমি যদি পদ্ধতিতে অনুরোধ করি তবে আমি delete
403 ফিরে পাব।
কিন্তু
আমি যদি পদ্ধতিতে অনুরোধ করি তবে আমি DeLeTe
ঠিক হয়েছি!
আমি কীভাবে এগুলিকে এই সংবেদন-সংবেদনশীলতা বর্জন করতে পারি?
সম্পাদনা করুন: আমি এটি সি # প্রোগ্রাম দিয়ে পরীক্ষা করছি:
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "making request";
System.Threading.Thread.Sleep(400);
WebRequest req = WebRequest.Create("http://serverurl/Application/cache_test.jsp");
req.Method = txtMethod.Text;
try
{
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
textBox1.Text = "Status: " + resp.StatusCode;
if (resp.StatusCode == System.Net.HttpStatusCode.OK)
{
WebHeaderCollection header = resp.Headers;
using (System.IO.StreamReader reader = new System.IO.StreamReader(resp.GetResponseStream(), ASCIIEncoding.ASCII))
{
//string responseText = reader.ReadToEnd();
textBox1.Text += "\r\n" + reader.ReadToEnd();
}
}
}
catch (Exception ex)
{
textBox1.Text = ex.Message;
}
}
txtMethod.Text
একটি পাঠ্য বাক্স যেখানে আমি পদ্ধতির নাম টাইপ করছি। যখন 403 থাকে তখন একটি ব্যতিক্রম ছুঁড়ে দেওয়া হয় যা ক্যাচ ব্লকে ধরা পড়ে।
Cache_test.jsp এর মধ্যে রয়েছে:
<%
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma","no-cache");
out.print("Method used was: "+request.getMethod());
%>
HttpWebRequest
করবে । অতিরিক্তভাবে, এটি কেবলমাত্র স্ট্যান্ডার্ড এইচটিটিপি পদ্ধতিগুলির অনুমতি হিসাবে নথিভুক্ত করা হয়েছে। কাঁচা টিসিপি স্ট্রিম (যেমন নেটক্যাট, বা পুটিটি কাঁচা, বা টেলনেট ইত্যাদি) ব্যবহার করা সবচেয়ে ভাল বিকল্প।