ホームページ  >  に質問  >  本文

python - django request请求问题求助

urls.py

from django.conf.urls import url
from django.contrib import admin
from blog import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', views.index),
    url(r'^abc$',views.handler),
]



views.py
# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.

def index(request):
    return render(request,"index.html")


def handler(request):
    return HttpResponse("<p>name:</p>" + request.POST['username'])



index.html
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8"/>
        <title>index page</title>
    </head>
    <body>
       <form action="abc" method="POST">
               <input type="text" name="username">
               <button id="btn">提交</button>
       </form>
    </body>
</html>


我在谷歌浏览器下点击这个提交后出现了

我又直接打开abc网站 出现了



请问这是什么问题啊 要怎么解决啊 ?
大家讲道理大家讲道理2763日前685

全員に返信(4)返信します

  • 巴扎黑

    巴扎黑2017-04-18 09:20:22

    Django では、post を使用すると次のエラーが発生する可能性があります:

    リーリー

    これは、Django が CSRF 攻撃 に対する保護を有効にするのに役立つためです。CSRF (クロスサイト リクエスト フォージェリ) は、悪意のあるクロスサイト リクエスト、または攻撃者がユーザーを欺く攻撃です。ユーザーの閲覧サーバーを攻撃して、認証された Web サイトにアクセスし、悪意のある操作を実行します。ユーザーのブラウザは Web サイトによって認証されているため、Web サイトではこれらの操作を安心して実行できます (これらの操作が Web サイトで要求されていないか、ユーザーの自発的でない場合でも)。

    そのため、サーバーには何らかの保護措置が必要です。一般的な保護方法は、サーバーによって生成されたランダム トークンを使用し、クライアントに送信されるフォームに含めることです。クライアントがフォームを返送するときに、サーバーはトークンが独自に発行されたものであるかどうかを確認し、攻撃を防ぎます。

    settings.py ファイルの MIDDLEWARE_CLASSES にはデフォルトの 'django.middleware.csrf.CsrfViewMiddleware' があるため、Django はここで CSRF トークンの検証を要求します。Web サイトの安全性を高めるために、段階的にゲームのルールに従います。さあ!

    次のように、HTML の <form>{% csrf_token %} を追加します。

    リーリー

    これで問題は解決します


    私が回答した質問: Python-QA

    返事
    0
  • 高洛峰

    高洛峰2017-04-18 09:20:22

    リーリー

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:20:22

    <button id="btn">Submit</button> は <input type="submit" value="submit"> として記述されます。もちろん、{% csrf_token %} を省略することはできません

    返事
    0
  • ringa_lee

    ringa_lee2017-04-18 09:20:22

    設定ファイル内の csrf 構成をコメントアウトする簡単な方法があります。 。

    返事
    0
  • キャンセル返事