07-django项目
1、sql注入,xss攻击,csrf,
sql注入
把sql命令插入到web表单,然后提交到所在页面请求,从而达到欺骗服务器执行恶意的sql命令
解决方法:不要使用动态拼接sql,把指令和数据分开,参数化查询xss:Cross Site Script 跨站脚本
web应用中的,一种计算机漏洞。允许恶意用户,将代码(HTML,JS脚本)植入到,给其他用户使用的页面上。
解决方法:
1.相对完整的输入过滤体系(BeautifulSoup,mark_up)
2.web表单对输入做各类校验
3.输出检查
- csrf:Cross site request forgery 跨站请求伪造
伪装成受信任用户,请求并利用受信任的网站
解决:
1.用户登录的时候,将创建一个token,此token存放于session当中
2.验证 HTTP Referer 字段,它记录了该 HTTP 请求的来源地址
3.在 HTTP 头中自定义属性并验证,加上csrftoken
2、你用到django框架能说下其他的框架吗
- Django:Django无socket,django的目的是简便,快速开发,并遵循MVC设计,多个组件可以很方便的以“插件”形式服务于整个框架,django有许多功能强大的第三方插件。django具有很强的可扩展性。
- Tornado:它是非阻塞式服务器,而且速度相当快,得力于其非阻塞的方式和对epoll的运用,Future对象,
缺点:没有session,需要自定制 - Flask:是一个微型的web框架,配合SQLALchemy来使用,jinja2模板,werkzeug接口
3、项目中,浏览器第一次登陆成功后,第二次打开如何保存登陆信息!
设置session步骤
1. 生成随机字符串adfdasf4334
2. response.set_cokkie("session_id":"adfdasf4334")
3. 在django-session表中创建一条记录:
session-key session-data
adfdasf4334 {"is_login":True,"username":'alex'}
4、cookie及session
cookie:是保留在客户端上面的一组键值对,cookie不是很安全,别人可以分析存放在本地的cookie
session:是保存在服务器上面的一组键值对,依赖与cookie,安全指数比cookie高
5、什么是ORM?
ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间做一个映射
ORM优缺点:
优点:摆脱复杂的SQL操作,适应快速开发,让数据结果变得简单,数据库迁移成更低
缺点:性能较差,不适用于大型应用,复杂的SQL操作还需要通过SQL语句实现
6、django的生命周期
1.wsgi, 他就是socket服务端,用于接收用户请求并将请求进行初次封装,然后将请求交给web框架Django
2.中间件,帮助我们对请求进行校验或在请求对象中添加其他相关数据,例如:csrf、request.session
3.路由匹配 根据浏览器发送的不同url去匹配不同的视图函数
4.视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm、templates => 渲染
5.中间件,对响应的数据进行处理。
6.wsgi,将响应的内容发送给浏览器
7、用户输入url,如何通过nginx如何与你的django项目进行交互的?
1.首先客户端请求服务资源,
2.nginx作为直接对外的服务接口,接收到客户端发送过来的http请求,会解包、分析,
3.如果是静态文件请求就根据nginx配置的静态文件目录,返回请求的资源,
4.如果是动态的请求,nginx就通过配置文件,将请求传递给uWSGI;uWSGI 将接收到的包进行处理,并转发给wsgi,
5.wsgi根据请求调用django工程的某个文件或函数,处理完后django将返回值交给wsgi,
6.wsgi将返回值进行打包,转发给uWSGI,
7.uWSGI接收后转发给nginx,nginx最终将返回值返回给客户端(如浏览器)。
https://blog.csdn.net/c465869935/article/details/53242126/
8、uwsgi是什么
https://www.cnblogs.com/pengyusong/p/5767899.html
uwsgi是用c语言写的一个webserver,可以启动多个进程,进程里面可以启动多个线程来服务。进程分为主进程和worker进程,worker里面可以有多个线程。
主进程部分:主进程执行部分是一个无限循环,用来管理worker进程
worker部分:在启动woker时可以根据--threads参数指定要产生的线程个数,否则只在当前进程启动一个线程。这些线程循环接收请求并处理。
6、lambda函数用过没
3、说下Linux中的信号量
2、说下如何查看linux系统的配置如何查看?什么时候生效的?
2、如何找出10个目录中最大的那个
3、写个shell脚本
15.awk命令你平常怎么用
2、https你了解吗?非对称密钥还是对称密钥
3、https过程是什么
8.你前端用的bootstrap、jquery,还有用过其他的前端框架吗
5、说下你如何存放用户头像的,数据库中如何存放的,字段是什么?
6、你的uwsgi怎么用的多线程实现的
2、django中,你用的是多线程还是多进程偏多
4、登录如何实现的?不适用modelform,又是如何实现的?
1、登录验证码如何实现的?PIL模块
11、你的项目中你是怎样进行性能调优的?
12.你了解协程吗?你在项目中怎么用的?Event事件
5、登录过程中,用户名与密码如何存储的,在数据库,加盐?暴力破解怎么办?
6、图片验证码如何实现的?
7、django中的MVC是什么?
8、ORM是什么,有什么用?如何查询的,下划线,F,Q、
10、xss攻击是什么,如何预防的?mark_up,beautiful,标签过滤?教育类平台网站,就是要实现这种效果,如何实现?
8、你的项目中,数据库如何设计的?表如何存取的?
13.项目中,你的静态文件怎么处理的,放在哪里的?
14.如果服务器出现问题的话,如何处理呢?中间件404?
9、说下你的项目中,用到了什么技术,挑一个你觉得最好的讲下
10、能说下你的项目中遇到的一个最大的问题吗,还有你是怎样解决的?
11、你了解哪些安全漏洞?
1、restful编码规范
2、在你工作与学习中你遇到的最大的问题是什么,怎么解决的?
3、说下对于这份工作,你的优势与劣势?
12、实习公司是什么?你主要做什么工作呢?有没有遇到过什么安全问题?
14、读过什么书?技术上的?
10.你了解redis吗?redis的事务如何来实现?
5.链表如果有环的话,如何检测出来
(两个指针a,b,一个步长1,一个步长2)
6.有个文件,里面有单词与单词的次数。
word 1
hello 2
python 3
linux 4
如何统计出每个文件的次数,并且排序出?
07-django项目的更多相关文章
- Docker部署Django项目+Nginx+Fluend日志收集 和redis、memcached、RabbitMQ、Celery
前言 一.docker 1.docker是什么? Docker的英文本意是“搬运工”,Docker搬运的是集装箱(Container)可以成为容器,我可以把写的Django的WEB应用以及Python ...
- CentOS 6.8 部署django项目一
CentOS 6.8 部署django项目二 1.安装python3.5(默认是2.6) 参考:http://blog.csdn.net/shaobingj126/article/details/50 ...
- 07: Django 使用ldap登录、注销等
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
- 发布django项目
supervisor需要用到的技术 1. nginx反向代理 2. nginx负载均衡 3. uwsgi 4. supervisor 5. virtualenv 安装nginx 详情参考 https: ...
- 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程
点击了解更多Python课程>>> 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程 适用人群: 即将毕业的大学生,工资低工作重的白领,渴望崭露头角的职场新人, ...
- Linux--部署Django项目
简单部署 1.安装虚拟环境virtualenvwrapper,创建虚拟环境目录,进入虚拟环境,我的虚拟环境目录叫venv2 [root@HH ~]# workon venv2 (venv2) [roo ...
- Django项目在Linux服务器上部署和躺过的坑
引言 在各方的推荐下,领导让我在测试环境部署之前开发的测试数据预报平台.那么问题来了,既然要在服务器上部署, 就需要准备: 1.linux服务器配置 2.linux安装python环境搭建与配置 3. ...
- Nginx+Uwsgi+Django 项目部署到服务器。
首先先说一下思路: 1.本地django项目打包 主要用到的是 python自带的distutils.core 下的 setup,具体代码在下面,主要讲的两个问题是package主要打包为和目录同级的 ...
- k8s-生产环境部署django项目k8s-dashboard管理系统
1. k8s-生产环境部署django项目k8s-dashboard管理系统 gitee地址: https://gitee.com/scajy/django-k8s-dashboard.git 部署架 ...
- centos7 apache httpd安装和配置django项目
一.安装httpd服务 apache在centos7中是Apache HTTP server.如下对httpd的解释就是Apache HTTP Server.所以想安装apache其实是要安装http ...
随机推荐
- python subprocess pipe 实时输出日志
* test11.py import time print "1" time.sleep(2) print "1" time.sleep(2) print &q ...
- 为什么不建议给域名裸域添加CNAME记录
很多提供权威 DNS 解析的服务商都不提供域名裸域又叫根域(root record)的 CNAME 解析,有些即使提供了也会在你添加裸域的 CNAME 记录时给你一个警告提醒. 万网的权威 DNS 解 ...
- jquery中ajax的dataType的各种属性含义
参考ajax api文档:http://www.w3school.com.cn/jquery/ajax_ajax.asp dateType后接受的参数参数类型:string 预期服务器返回的数据类型. ...
- 认识与入门 MarkDown 标记语言
一.MarkDown 概念: 一种轻量级的标记语言,标记符号不超过十个,现有很多支持MarkDown语法的编辑器以及网站.Markdown从写作到完成,导出格式随心所欲,可以导出HTML,也可以导出P ...
- Dictionary CovertTo List
示例代码 假设有如下一个Dictionary 要转换成List Dictionary<string, string> dicNumber = new Dictionary<strin ...
- <button>与<input type="button">
在做form表单,点击按钮随机生成两串密钥的时候 1.用第一种按钮的时候,会出现刷新form表单的现象.会把创建密钥前面的输入框中的字消失.虽然能生成密钥1和密钥2,但是会闪一下,随即消失.几个输入框 ...
- MySQL基础之 排序与限制,聚合
排序与限制 ORDER BY 作用:取出按照某个字段进行排序后的记录结果集. 配合:常与DESC 和ASC一块使用:默认是ASC,表示升序.DESC表示降序 LIMIT 作用:用于显示数据的一部分记 ...
- October 10th 2017 Week 41st Tuesday
If you focus on what you left behind you will never see what lies ahead. 如果你只顾回头看,那么你永远也看不见前方有什么. Ye ...
- SDN期末作业——负载均衡
作业链接 期末作业 1.负载均衡程序 代码 2.演示视频 地址 3.小组分工 小组:incredible five 构建拓扑:俞鋆 编写程序:陈绍纬.周龙荣 程序调试和视频录制:陈辉.林德望 4.个人 ...
- 【转】PHP解析带CDATA的XML方法
XML文件,如下 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName& ...