APIに記載されている変数cherrypy.request.params
には、クエリ文字列とPOST変数が辞書に含まれています。しかし、これをうまく組み合わせると、GETデータを取得するために完全な要求URIを処理した後に受け取ったすべての変数が含まれているようです。これは辞書のPOSTデータと区別がつかなくなります。 違いを伝える方法がないように思えるかもしれません。あるいは、おそらく私は間違っています。CherrypyでPOSTとGETで受信したデータを区別する
純粋に投稿されたデータを使用する方法と、リクエストURI以外のクエリ文字列のデータを無視する方法について教えてください。はい、私はそれがPOSTかGETリクエストかどうかを知ることができますが、これはPOSTリクエストでGETデータを含むURIへのリクエストで偽造を停止しません。
>http://localhost:8080/testURL/part2?test=1
>POST username = test
"cherrypy.request.params" has 2 variables
test = 1
username=test
リクエストがPOSTを使用していることを確認する限り、リスクは全くありません。悪意のあるアプリケーションがフォームのクエリ文字列/ urlを変更できる場合は、入力されたデータを簡単に入力することもできます。しかし、POSTを必要とするだけでは、アプリケーションをCSRFから保護するだけでは不十分です。悪意のあるサイトは隠されたフォームを作成し、JavaScript経由で非表示のiframeに送信することができます。 – ThiefMaster