mysql - 关于php数据处理流程

 hongxiaochen8847_106 发布于 2022-11-23 20:14

一个问题一直没有弄清楚,关于数据处理。

用户提交信息--1-入库--2-前台调出

为了防止xss注入和对html的处理,这个流程是如何操作的?

2 个回答
  • 简单来说,在入库前要对用户的输入进行检查,通常是防 SQL 注入。然后在页面显示信息时要进行恰当的转义,这个通常是防 XSS.

    2022-11-23 20:22 回答
  • 不知道你说的是 XSS 还是 XSS 与 注入。一般来讲注入指的是 SQL 的注入。

    你困惑的原因是对 XSS 了解不多,简单点说,我在你的网站上发表内容(比如发表评论),这段内容包含 Javascript 代码,而贵站没有对用户发表的内容进行过滤,这就造成了我之后的人打开这一页的时候,会运行我发布的 Javascript 代码,如果我是个合格的程序员,基本可以利用这段代码干任何事情了。比如挂马,更甚点,如果贵站是个社交网站,我可以事先对转发、关注、点赞、分享之类的动作进行抓包,分析 POST 或 GET 格式,然后在 Javascript 中进行相应操作, 例如先关注我,然后分享我的评论给你的好友,你可以看到这是恶性循环,是个引爆点,理论上这可以影响到一个社交网站绝大多数用户。 这是所谓的 XSS。

    早年流传一句话,不要信任任何用户,话不中听,但这是极为有道理的,你不知道你的访客到底是何方神圣,抱有怎样目的。从他输入信息,到他的信息以任何形式被展示出来(评论、主题帖、站内信,只要涉及他输入的地方全部都算)这个过程内,你必须得对此内容进行处理,检验其中是否含有危险内容,一般都在入库之前处理,可以连同有可能存在的 SQL 注入一并处理了。至于 SQL 另一个类别,也是用户输入(包含$_GET,$_POST了),有可能危害到你数据库的安全,有经验的人会猜测你程序里使用的 SQL 语句(比如你的内容地址是http://yourdomain.com/?id=23,显然你程序中走位就是SELECT id,name FROM xxx WHERE id = 23),他会在网址后面加东西,最简单的是 or 1 = 1,使你任何语句查询结果都为真,这要是用户登录部分,危害太大。详细的你自己找资料吧。

    我见到许多 PHP 项目用的 XSS 过滤是开源库:http://htmlpurifier.org/

    2022-11-23 20:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有