kapieciiのブログ

日々学んだことを残しておくためのブログです。このブログはGoogle Analyticsを利用しています。

PUTやDELETEのHTTPリクエストを送信する方法色々

PUTやDELETEメソッドのテストをしたい場合に使える手段を検証したので、メモを残しておきます。 記事中の「172.16.83.134」は、Docker環境のIPアドレスです。

目次

curl

「-X」で指定します。

$ curl -X PUT http://172.16.83.134/
$ curl -X DELETE http://172.16.83.134/
$ curl -X TRACE http://172.16.83.134/
$ curl -X OPTIONS http://172.16.83.134/

ブラウザ拡張

ブラウザの拡張機能は色々とあるので、試したものだけ記載しています。

firefox

addons.mozilla.org

f:id:kapiecii:20191123021455p:plain

chrome

chrome.google.com

f:id:kapiecii:20191123021551p:plain

chrome.google.com

f:id:kapiecii:20191123021643p:plain

Python

Pythonに標準で入っているurllibでPUTやDELETEのリクエストを送信することができます。

takuya-1st.hatenablog.jp

ローカルプロキシツール

burp suite

今回はburp suiteというローカルプロキシツールを使いました。
送信されるリクエストを手で書き換えます。

f:id:kapiecii:20191123021918p:plain

portswigger.net

できなかったもの

HTMLのform

「こんな方法があったのか!」ということで、こちらの記事で記載されていた、「HTMLのformで”_method”として指定する方法」も試してみました。
Dockerでサーバ環境を用意し、サーバ側のログを確認してみたのですが、POSTメソッドとしてリクエストを受け取っていました。
ブラウザのバージョンが上がったことにより、動作しなくなったのかもしれません。

portaltan.hatenablog.com

検証コード

<!DOCTYPE html>
<html>
    <body>
        <p>submit put / delete / options / trace method!</p>
        <form method="post" action="http://172.16.83.134/">
            <input type="hidden" name="_method" value="PUT">
            <input type="submit" value="send put">
        </form>

        <form method="post" action="http://172.16.83.134/">
            <input type="hidden" name="_method" value="DELETE">
            <input type="submit" value="send delete">
        </form>

        <form method="post" action="http://172.16.83.134/">
            <input type="hidden" name="_method" value="OPTIONS">
            <input type="submit" value="send options">
        </form>

        <form method="post" action="http://172.16.83.134/">
            <input type="hidden" name="_method" value="TRACE">
            <input type="submit" value="send trace">
        </form>
    </body>
</html>

検証用Webサーバ環境

こちらの方法でDocker + Apache + PHPの環境を用意しました。

kapiecii.hatenablog.com

kapieciiのブログについてお問い合わせがある場合、下記のフォームからご連絡をお願い致します。
お問い合わせはこちら