你们都认为正确的(读取:最灵活,松散耦合,最强大等)的方式使用户输入来自Web安全,以便在Web应用程序的各个部分中使用?显然,我们可以为每个上下文使用相应的清理功能(数据库,在屏幕上显示,保存在磁盘上等),但是有一些通用的“模式”来处理不安全的数据并使其安全吗?除非安全得当,否则是否有既定的方法来强制将其视为不安全?
就像已经说过的那样,当你担心网络安全时,有几件事需要考虑.以下是一些需要考虑的基本原则:

>避免将用户的直接输入集成到查询和变量中.

所以这意味着没有像$variable = $_POST [‘user_input’]这样的东西.对于这样的任何情况,您将过多的控制权移交给用户.如果输入影响某些数据库查询,则始终使用白名单来验证用户输入.如果查询是针对用户名,请根据良好用户名列表进行验证.不要简单地使用直接放入的用户输入进行查询.

一个(可能的)例外是搜索字符串.在这种情况下,您需要进行清理,就像那样简单.

>避免存放用户输入而不需要卫生设施.

如果用户正在为其他用户创建配置文件或上传信息,则必须具有可接受的数据类型的白名单,或者删除任何可能是恶意的数据.这不仅适用于您系统的安全性,也适用于您的其他用户(请参阅下一点.)

>从不将用户的任何内容输出到浏览器而不剥离它.

这可能是安全顾问向我强调的最重要的事情.当用户收到输入时,您不能简单地依赖于清理输入.如果您没有自己编写输出,请始终通过编码任何HTML字符或将其包装在< plaintext>中来确保输出无害.标签.如果用户A上传了一些损害查看该页面的任何其他用户的javascript,那么开发人员就会出于简单的疏忽.知道任何和所有用户输出除了在所有浏览器上显示为文本之外什么都不做,你会在晚上睡得更好.

>除了用户控制表单外,绝不允许任何人.

XSS比应该更容易,并且在一个段落中覆盖真正的痛苦.简而言之,无论何时创建表单,您都可以让用户访问将处理表单数据的脚本.如果我窃取某人的会话或某人的cookie,我现在可以与脚本交谈,就像我在表单页面上一样.我知道它所期望的数据类型以及它将寻找的变量名称.我可以简单地将那些变量传递给它,就像我是用户一样,脚本无法区分.

以上不是卫生问题,而是用户验证问题.我的最后一点与这个想法直接相关.

>避免使用cookie进行用户验证或角色验证.

如果我可以窃取用户的cookie,我可能做的不仅仅是让一个用户度过糟糕的一天.如果我注意到cookie有一个名为“member”的值,我可以很容易地将该值更改为“admin”.也许它不会起作用,但对于许多脚本,我可以即时访问任何管理员级别的信息.

简而言之,没有一种简单的方法来保护Web表单,但是有一些基本的原则可以简化您应该做的事情,从而减轻保护脚本的压力.

再一次好的措施:

>清理所有输入
>编码所有输出
>根据严格的白名单验证用于执行的任何输入
>确保输入来自实际用户
>永远不要进行任何用户或基于角色的验证浏览器端/用户可修改

永远不要认为任何一个人的名单都是详尽或完美的.

php – 在各种环境中使Web表单输入安全的正确方法是什么?的更多相关文章

  1. HTML5新增form控件和表单属性实例代码详解

    这篇文章主要介绍了HTML5新增form控件和表单属性实例代码详解,需要的朋友可以参考下

  2. wordpress添加Html5的表单验证required方法小结

    这篇文章主要介绍了wordpress添加Html5的表单验证required方法小结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. HTML5表单验证特性(知识点小结)

    这篇文章主要介绍了HTML5表单验证特性的一些知识点,本文通过实例代码截图的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. ios – 为什么Web Inspector向我显示“无检查应用程序”?

    什么可能是一个可能的原因,什么可以解决?解决方法我有同样的问题,这是因为我正在运行iOS8,通过将Safari更新到7.1来修复.

  5. Swift Web 开发之 Vapor - 入门一

    简介Vapor是一个基于纯Swift构建出的Web开发框架,目前可以运行在macOS和Ubuntu,用于构建出漂亮易用的网站或者API服务。组件VaporAuthSessionsCookiesRoutingVaporToolBoxFluentEngineHTTPURIWebSocketsSMTPLeafJSONConsoleTLSCryptoNodeSocksVapor使用SwiftPackageManager做依赖和包管理,不过以我个人目前的使用感受来看SwiftPackageManager还不是很好用

  6. Swift Web 开发之 Vapor - 模版 Leaf三

    Leaf作为Vapor官方提供的组件之一原生集成在Vapor中,Leaf模版文件以.leaf结尾,模版语法夹杂在HTML之间,我们可以直接使用而不需要引入其他外部依赖。#import()用来声明一个插入点在当前模版。这是[SwiftWeb开发之Vapor]系列的第三篇,说了说Vapor中自带的Leaf模版引擎,按照笔者目前的使用情况来看其实Leaf还不太成熟,虽然还有太多需要优化改进的地方,不过我相信之后一定会越来越好的。所以不要害怕,赶紧来写SwiftServerSide吧!

  7. android – 有没有办法阻止Mobile Safari在HTML表单的数字字段中插入逗号?

    我有一个网站,其中包含一个表单,允许用户输入信用卡详细信息.卡号,发行号,CVC号和他们希望存入的金额的字段使用HTML形式的输入框,类型为“数字”.iOS5附带的更新的MobileSafari会自动在“数字”输入字段中将逗号插入数字中.这不仅在CC编号中看起来很愚蠢,而且会破坏我的验证.有办法阻止这个吗?

  8. android – Facebook Javascript SDK和Phonegap URL错误

    我目前正在尝试使用android应用程序中的phonegap开发facebook登录功能.我已经完成了所有必要的安装,并为我放在facebook上的应用程序生成了一个哈希键,但是我一直收到以下错误:GivenURLisnotallowedbytheApplicationconfiguration.:OneormoreofthegivenURLsisnotallowedbytheApp’ssetti

  9. android – 在Internet上发布我的RESTful Web服务

    什么是最好的方法?例如,我可以使用AmazonWebServices或ApacheHTTPServer吗?

  10. android – GoogleJsonResponseException:404 Not Found使用谷歌应用程序端点引擎后端

    我按照下面的教程.https://developers.google.com/eclipse/docs/running_and_debugging_2_0它基本上为我现有的应用程序添加了GAE后端.然后,我尝试下面的示例,在本地开发服务器上运行它,然后我得到下面发生的异常叫做.我的代码如下.解决方法导致此问题的另一个可能原因是未在appengine-web.xml中设置正确的application

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部