HTML 表单用于搜集不同类型的用户输入。
表单是一个包含表单元素的区域。
表单元素是允许用户在表单中输入内容,比如:文本域(textarea)、下拉列表、单选框(radio-buttons)、复选框(checkboxes)等等。
表单使用表单标签 <form> 来设置:
<form>
input elements
</form>
HTML 表单 - 输入元素
多数情况下被用到的表单标签是输入标签(<input>
)。
输入类型是由类型属性(type)定义的。大多数经常被用到的输入类型如下:
<input type="text">
标签来设定,当用户要在表单中键入字母、数字等内容时,就会用到文本域。<form>
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="lastname">
</form>
注意:表单本身并不可见。同时,在大多数浏览器中,文本域的缺省宽度是20个字符。
<input type="password">
来定义:<form>
Password: <input type="password" name="pwd">
</form>
注意:密码字段字符不会明文显示,而是以星号或圆点替代。
<input type="radio">
标签定义了表单单选框选项<form>
<input type="radio" name="gender" value="male">Male<br>
<input type="radio" name="gender" value="female">Female
</form>
<input type="checkbox">
定义了复选框. 用户需要从若干给定的选择中选取一个或若干选项。<form>
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car
</form>
<input type="submit">
定义了提交按钮.
当用户单击确认按钮时,表单的内容会被传送到另一个文件。表单的动作属性定义了目的文件的文件名。由动作属性定义的这个文件通常会对接收到的输入数据进行相关的处理。:<form name="input" action="html_form_action.php" method="get">
Username: <input type="text" name="user">
<input type="submit" value="Submit">
</form
CSRF(Cross-site request forgery)通常缩写为CSRF或者XSRF:跨站请求伪造
CSRF攻击可以理解为:攻击者盗用了你的身份,以你的名义发送恶意请求。
举例来讲,某个恶意的网站上有一个指向你的网站的链接,如果
某个用户已经登录到你的网站上了,那么当这个用户点击这个恶意网站上的那个链接时,就会向你的网站发来一个请求,
你的网站会以为这个请求是用户自己发来的,其实呢,这个请求是那个恶意网站伪造的。
CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。
Django 提供的 CSRF 防护机制
django 第一次响应来自某个客户端的请求时,会在服务器端随机生成一个 token,把这个 token 放在 cookie 里。然后每次 POST 请求都会带上这个 token,
这样就能避免被 CSRF 攻击。
Django 里如何使用 CSRF 防护:
需求:模拟登录功能,如果用户的名字是你的名字全拼且密码是12345,则显示登录成功,否则登录失败
1.创建app:python manage.py startapp login
2.在app中创建templates
文件夹,并简单写三个网页,分别是登陆页面,登陆成功页面,登陆失败页面。
login.html
3.建立项目视图的练习,详情请见Django教程(一)- Django视图与网址
逻辑示意图.png
定义视图函数views.py
创建urls.py
修改项目中的urls.py
输入正确的用户名和密码:
反之:
这里只是为了完成需求,不考虑网页的显示的效果!233
注意:测试之前需在终端打开服务器python manage.py runserver 8001
(端口号默认是8000,也可以选择不设置!)