图灵机:
图灵机(Turing Machine)是图灵在1936年发表的 “On Computable Numbers, with an Application to the Entscheidungsproblem”(《论可计算数及其在断定性问题上的应用》)中提出的数学模型。既然是数学模型,它就并不是一个实体概念,而是架空的一个想法。在文章中图灵描述了它是什么,而且证实了,只要图灵机能够被实现,就能够用来解决任何可计算问题程序员
图灵机的结构包括如下几个部分:web
都是顺序执行,可以进行存储和计算,也能够设置相应的计算规则。
- 冯诺依曼体系结构:(1)是一台真正的计算机。(2)由不一样部分组成。(3)二进制表示。 - 图灵机:(1)一个理想状况下的计算机。(2)只能进行数学计算。(3)字母表示
图灵机是计算机领域的一个数学模型,而冯诺依曼体系机构是一个计算机模型。sql
做一个不恰当的比喻,“程序=指令+数据”就像是“做文=语法+词汇”同样。在计算机中指令就至关于语法,可以将词汇串联成句,表达出咱们想表达的意思,也就是说指令和数据一块儿才能构成程序。自己程序就是计算机想要表达意思的一个集合,没有数据的支撑,光有指令只能是空中楼阁。在实际编程的时候,咱们每每须要用简单的数据来证实咱们程序设计的是否合理。所以,“程序=指令+数据”这句话就好理解了,有想法,有工具,才能完成一件事情,计算机程序也是如此。这即是个人理解。数据库
缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的状况。这一漏洞能够被恶意用户利用来改变程序的流控制,甚至执行代码的任意片断。这一漏洞的出现是因为数据缓冲器和返回地址的暂时关闭,溢出会引发返回地址被重写。计算机程序通常都会使用到一些内存,这些内存或是程序内部使用,或是存放用户的输入数据,这样的内存通常称做缓冲区。溢出是指盛放的东西超出容器容量而溢出来了,在计算机程序中,就是数据使用到了被分配内存空间以外的内存空间。而缓冲区溢出,简单的说就是计算机对接收的输入数据没有进行有效的检测(理想的状况是程序检查数据长度并不容许输入超过缓冲区长度的字符),向缓冲区内填充数据时超过了缓冲区自己的容量,而致使数据溢出到被分配空间以外的内存空间,使得溢出的数据覆盖了其余内存空间的数据。经过往程序的缓冲区写超出其长度的内容,形成缓冲区的溢出,从而破坏程序的堆栈,形成程序崩溃或使程序转而执行其它指令,以达到攻击的目的。形成缓冲区溢出的缘由是程序中没有仔细检查用户输入的参数。编程
XSS是一种常常出如今web应用中的计算机安全漏洞,它容许恶意web用户将代码植入到提供给其它用户使用的页面中。好比这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞因为被骇客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,骇客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。安全
SQL注入能够分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是因为程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生缘由一般表如今如下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。
当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。若是代码使用存储过程,而这些存储过程做为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能致使攻击者使用应用程序登录在数据库中执行命令。相关的SQL注入能够经过测试工具pangolin进行。若是应用程序使用特权太高的账户链接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态sql命令,或者做为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中自己的变量处理不当,使应用程序存在安全隐患。这样,用户就能够提交一段数据库查询的代码,根据程序返回的结果,得到一些敏感的信息或者控制整个服务器,因而sql注入就发生了。服务器
它们利用存储程序的特色和漏洞,将恶意程序插入到要执行的程序中,使程序跳转到攻击者想要执行的位置执行从而完成攻击。
防范方法就是引入检查机制,如关键字检查、关键字转码。网络