- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
目前我正在升级一个 Web 应用程序,我将从登录用户那里获得大部分输入。输入将包含有效的 html、图像、音频、视频和上传到用户定义路径的工具。然后应用程序将其格式化为漂亮的用户界面并显示给最终用户。这些特权用户可以使用基于网络的界面添加/修改/删除内容。
根据基本的经验法则:我应该在进入数据库之前转义我的数据,而不是接收来自用户的数据。为此,我计划采取以下安全措施。其中还包括我的问题
LIKE
有疑问吗?strip_tags
& htmlentities
在插入数据库之前。
htmlentities
在文本上然后插入数据库。
htmlentities
在插入数据库之前,但必须像以前的程序员一样使用它。这有什么负面影响吗?<p style='color:red;'>hello</p><p class='noclass'>world</p>
,我希望用户只看到 2 个单词而不是实际文本。
如果当前方法足够/不够/不够/不正确,请指导。我既不是 100% 的 php 新手,也不是专业人士。我知道有关 php(或者我们可以说所有 web 应用程序)安全性的基础知识。如果我在安全方面犯了任何错误,或者不应该做某事,或者应该或多或少做某事,那么有人可以指导我吗。
我知道安全的基础知识,但我仍然感到困惑
最佳答案
是的,准备好的语句非常适合防止 SQL 注入(inject)问题。是的,你必须在 LIKE
查询中处理 %
和 _
,准备好的语句无法逃脱它们,因为它无法知道无论您是否想要这些值。
through 5.: 将进入数据库的数据转义为输出指定的格式总是一个坏主意。为什么?首先,为什么您如此确定您总是要在 HTML 上下文中使用数据?也许你将来会以不同的格式使用它,然后你会得到看起来很垃圾的数据。 (这在您的情况下更像是假设,因为您明确存储了 HTML。)
其次,您的输出代码必须依赖于您的输入代码才能正确地提前转义数据,输入和输出之间可能需要很长时间。您的输出代码无法确定输入代码是否正确完成了输出代码需要它做的工作。因此,输出转义必须在输出时发生。不早不晚。
第三(这是一个词吗?),strip_tags
绝对不足以接受某些 HTML 而不是其他“不安全”的 HTML。您需要一个更复杂的库,它具有比 strip_tags
更复杂的白名单规则。据说唯一这样做的图书馆是 HTML Purifier .我将通过它运行所有用户 HTML。
总结一下:
关于php - 安全措施 - 何时以及如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22808301/
我一直在寻找使 Magento 尽可能安全的技巧。我找到了这个http://magplazza.com/2010/06/top-4-security-tips-for-your-magento-sto
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 7年前关闭。 Improve this questi
目前我正在升级一个 Web 应用程序,我将从登录用户那里获得大部分输入。输入将包含有效的 html、图像、音频、视频和上传到用户定义路径的工具。然后应用程序将其格式化为漂亮的用户界面并显示给最终用户。
我正在使用 JavaScript 将值传递到另一个页面的 URL 中。我应该采取/使用什么安全措施,才能避免被恶意操纵? 这就是我正在做的事情: window.location = "post.php
我是一名优秀的程序员,十分优秀!