Fatihsoysal.com

Freelance Proje İş Alımı


Merhaba, şu anda anahtar teslim freelance proje iş alımları için uygunum.
Tekliflerinizi buradan yada fatihsoysal@outlook.com e-posta adresi üzerinden benimle paylaşabilirsiniz. Çok kısa bir süre içerisinde tarafınıza geri dönüş sağlanacaktır.

Kategoriler


PHP: POST İsteklerini Engellemek – 405 Method Not Allowed

Fatih SoysalFatih Soysal

Bu makale, PHP kullanarak POST isteklerinin nasıl engelleneceğine dair kısa bir kılavuzdur. Özellikle, komut dosyalarınızın bir uygulama düzeyinde kabul ettikleri HTTP yöntemlerini denetlemeniz gerekiyorsa, bu makale size yardımcı olacaktır.

POST isteklerinin engellenmesi ve “405 Method Not Allowed” hatası döndürmek

Dilerseniz başlayalım.

POST isteklerini engellediğimiz bir örnek yapalım.

Yukarıdaki örnekte:

  1. REQUEST_METHOD” değerini $ _SERVER evrensel dizisinden alarak istek yöntemini tespit ettik.
  2. İstek yönteminin “POST” değerine eşit olup olmadığını kontrol ettik.
  3. Bu bir POST isteğiyse, istemciye “405 Yönteme İzin Verilmiyor” başlığı gönderdik ve isteği geri çevirdik

Araştırmalarım sonucunda internet ortamında gördüğüm birçok örnekte, çoğu örnek başlığı göndermeden senaryoyu bitiriliyordu. Bu yaklaşımdaki sorun, istemcinin sunucudan hala “200 OK” cevabı almasıdır. 200 dönüyor ama aslında engelleniyor. Bu doğru bir yaklaşım değil. Doğru kullanım, yukarıda olduğu gibi isteği engellemek, engelleme bilgisini de isteğin sonucu olarak belirtmek. Yukarıdaki örnekte “405 Method Not Allowed” başlığını göndererek, temel olarak, talep eden isteğe söz konusu URL’nin POST isteklerine izin vermediğini belirttik. (405 Method Not Allowed)

Bonus: Belirli HTTP yöntemlerine izin vermek

Başka bir yaklaşım, izin verilen bazı HTTP yöntemlerini beyaz listeye almaktır. (Bazı isteklere izin ver, bazılarına verme gibi) Aşağıdaki örneği inceleyelim:

Yukarıdaki betikte, geçerli istek yönteminin izin verilen yöntemler listemizde olup olmadığını kontrol ediyoruz. Değilse, o zaman istemciye bir 405 gönderip PHP betiğinden çıkıyoruz.

Not: Uygulamanızın tamamında HTTP yöntemlerini beyaz listeye almak istiyorsanız, bunu bir sunucu üzerinde yapmalısınız. Apache ve Nginx ile de benzer yaklaşımlar alınabilir.

Her neyse, bu rehberin size yararlı olacağını düşünüyorum. Bir sonraki makalede görüşmek üzere.

 

Kullanım ve kodlama mükemmeliyetini odak alan uygulamalar oluşturma deneyimine sahip, profesyonel olarak 15+ yıl üzeri deneyime sahip bir yazılım mühendisi.

    Subscribe
    Bildir
    guest

    0 Yorum
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x