相关疑难解决方法(0)

输入与输出之间的html/XSS转义

从我所看到的一切来看,似乎在用户输入的内容上逃避html的惯例(为了防止XSS)是在渲染内容时这样做.大多数模板语言似乎默认都是这样做的,而且我遇到过像stackoverflow这样的问题,认为这个逻辑是表示层的工作.

所以我的问题是,为什么会这样呢?对我而言,在输入(即表单或模型验证)上逃避似乎更清晰,因此您可以假设数据库中的任何内容都可以安全地显示在页面上,原因如下:

  1. 多种输出格式 - 对于现代Web应用程序,您可能使用服务器端html呈现,使用ajax/JSON的javascript web应用程序和接收JSON的移动应用程序(可能有也可能没有某些webview,这可能是javascript应用程序或服务器呈现的HTML).所以你必须处理遍布各地的html.但是输入将始终在保存到db之前被实例化为模型(并经过验证),并且您的模型都可以从相同的基类继承.

  2. 您已经必须小心输入以防止代码注入攻击(授予这通常是抽象到ORM或db游标,但仍然),所以为什么不担心html转义到这里所以你不必担心任何事情安全相关的输出?

我很想听听关于为什么html在页面渲染上转义是首选的论点

xss model-view-controller

24
推荐指数
2
解决办法
8275
查看次数

htmlspecialchars()是否应该用于输入信息或输出之前?

我获取$ _POST信息并将其存储在数据库中,稍后查询并将此信息打印给用户.我应该在插入此信息之前使用htmlspecialchars(),还是在输出之前查询它?

此外,我需要用户能够使用引号和其他日常特殊字符的能力.我知道我可以使用ENT_NOQUOTES标志,但感觉就像我这样做会留下安全漏洞.

我的网站允许Bbcode,我希望用户能够使用日常字符,而不必看到"amp; lt;<?>&".

鼓励我<--- noob!感谢:D

html php xss

4
推荐指数
1
解决办法
1949
查看次数

标签 统计

xss ×2

html ×1

model-view-controller ×1

php ×1