问题标签 [input-sanitization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 特殊字符打破mysql插入
我有一个这样的mysql语句:
如您所见,非常简单明了。问题是当我在表单中输入特殊字符时,它不会将数据插入到我的表中(使用 phpmyadmin 直接检查是否已插入)。例如,如果我在评论文本区域中输入此值:“这是一个评论”,如果我输入:“你叫什么名字?:John doe 是我的名字”它会中断。我知道它是因为 mysql 使用字符......关于我应该做什么的任何建议?
java - 在 RoR 中为程序生成的 java 清理字符串
我正在编写一个 Ruby on Rails 应用程序,它通过用户输入将生成一些 Java 代码,然后服务器将编译并执行这些代码。(不要问为什么;)
问题是用户能够输入需要在 Java 中用作字符串文字的字符串。我以前将字符列入白名单,但这种方法为用户提供的灵活性不足。如何清理 RoR 中的字符串,以防止用户终止字符串,从而能够在服务器上执行任意代码。
html - 隐藏表单元素上的 htmlentities
这似乎是一个愚蠢的问题,但用户输入的清理不断让我感到困惑,我希望一劳永逸地得到一个明确的答案。
所以这是场景
- 客户填写网络表格。
- PHP 检查必填字段是否已正确填写,如果没有填写,则不会让客户继续填写。
- 如果是这样,则用户输入将显示在屏幕上以供确认,同时输入数据也存储为隐藏的表单元素。
- 然后客户确认输入,然后将隐藏的元素发送给进一步处理。
使用直到最后一分钟才应转义数据的原则,这将如何应用于存储在第 3 点的隐藏元素中的数据。(显然,此时打印在屏幕上的数据我也应用了 htmlentities())
我是否应该在隐藏元素上使用 htmlentities,但这在技术上不是最后阶段,因为在第 4 部分之后,我将再次使用变量,然后将它们粘贴到数据库或电子邮件中。
我完全意识到我可能做错了,所以任何想法都是非常受欢迎的。^_^
php - 在用户输入上调用 json_decode 是否安全?
我在 cookie 中存储一个 JSON 编码的整数索引数组 => 整数值。
显然 cookie 可以像任何其他用户输入一样轻松操作,所以这是我的 cookie getter 验证:
然后在使用任何值之前,我检查它是否存在于数组中并针对白名单值列表进行测试——这部分看起来很安全,但我将其发布为验证的一部分:
回到问题,直接在cookie上调用是否安全?json_decode
用户可以操纵 cookie 来运行任意代码吗?
到目前为止,我一直在阅读关于 SO 的许多主题,我发现它unserialize()
是不安全的,因为它调用构造函数,但json_decode
在技术上是安全的。我已经阅读了他们的 php.net 页面,但这些页面并没有直接解决安全问题。
我的插件很快就会进入实时测试版,所以我想知道json_decode
直接调用 cookie 是否足够安全,或者我是否应该在调用json_decode
. 我也可以运行 a preg_match
,但是当我在使用它们之前针对值的白名单进行测试时,应该没有问题,除非json_decode
以某种方式运行任意代码,它不会,对吧?
我知道如果它不是有效的 JSON,它会json_encode
返回NULL
,但我想知道这是否是正确的方法,或者我应该在调用之前添加某种验证json_decode
?
抱歉,如果这是一个太愚蠢的问题,我只是对 cookie/JSON 的经验很少,并且不希望成为我们服务器数据库丢失的罪魁祸首。任何帮助/信息表示赞赏。=]
php - 清理表单数据
在使用 HTML/CSS 构建网站后,我只是在学习 PHP 和脚本的基础知识。我正在尝试制作一个提交到数据库的简单表单,只是为了收集电子邮件地址和姓名。以下是我正在使用的基本代码。我对它进行了一些调整,但没什么大不了的。我知道我需要清理这些数据,并且我已经阅读了数十篇关于如何执行此操作的帖子、文章等,我只是不知道如何向其中添加 escape_string 或 PHP 函数。我以为我做到了,我已经尝试了几十种方法,但是当我测试时,它们似乎没有任何区别。我知道这样做只是我的新手无知,但我有点拉扯我的头发,所以任何帮助都会很棒。
@rwhite35 这是最终结果的样子吗?
file-upload - 从用户输入文件路径中删除前导“/”和禁止“../”有多安全?
在用户提供的文件名的任何部分中剥离前导“/”并禁止“../”仍然被认为是“安全的”吗?还是有一些(想到utf-8编码)的方法?我不是在问是否可以在每个文件系统上创建文件名。我想保留尽可能多的用户输入。
php - PHP; 编码和解码函数产生相同的输出
清理一些用户输入;
$_POST['data'] 设置为;
这个的输出是;
为什么最后两个产生相同的结果,而第二个是发布数据的一部分?由于最后两个似乎产生了预期的结果,我应该使用哪个?
谢谢你。
php - PHP:如何清理离开 UTF-8(俄语、土耳其语、英语)的用户输入?
干净的用户提交了意外或故意垃圾的输入。我写了以下内容来做到这一点,并且有兴趣看到针对同一问题的更有效或更好的解决方案。
注意:我在 mysql 方面使用了mysqli 准备好的语句。
第一种情况: 用户应该能够输入UTF-8(只需要俄语、土耳其语、英语)字符和'_',(这是为了清除用户输入的'用户名')。
输入:
为了清理这些我写了这个简单的函数
它返回我需要的东西;
第二种情况:只允许使用英文字符,应删除无效字符和其他 UTF-8 字符。(这是为了清理用户输入的“电子邮件”)
输入:
由于这部分是用于电子邮件的,并且应该只接受英文字符,所以我编写了以下函数来清理和验证;
通过以下方式调用时:
返回我需要的东西
ps
- 我不需要在此电子邮件输入字段中完全符合 UTF-8 / RFC,也不需要包含所有可能包含在电子邮件中的特殊字符。我更喜欢限制更多,并在最初的问题中说明需要什么以及函数的作用。这里的想法更多的是摆脱错误输入的字符而不是验证电子邮件,在一个在线站点中,我宁愿不更正任何东西,而只是抛出一个错误。
- 更新了干净电子邮件功能中的正则表达式以包含 + 和 - 字符。
php - 在使用explode()、strpos()、substr()等函数之前是否应该对用户数据进行清理
不要成为一个偏执狂,我想知道是否直接将客户端输入与字符串操作函数(如explode()、strpos()、substr()……)一起使用可能是一个安全问题。
两年前,我记得读到其中一些函数使用了一个对特定条目敏感的库,并且它可用于创建新文件等......
我找不到关于OWSAP中提到的任何内容
如果是这样,哪个版本的 PHP 受此影响?
编辑 我还没有找到确切的答案,但是这个 stakeoveflow 问题与我的 问题很接近
php - 可以将表单输入直接加载到 DOMDocument 类中吗?
我构建了一个接受任意 HTML 的工具,收集所有类和 id 并将它们输出回页面。我担心安全问题。我一直在使用 HTML Purifier 过滤输入,但我需要支持 HTML5,而 HTML Purifier 不支持。
这是该工具的要点:
我的问题是:
似乎有人可以将这样的字符串放入工具中:'<div '); do_bad_stuff( 'ha_ha_ha'
最终$doc->loadHTML($html);
会说$doc->loadHTML('<div '); do_bad_stuff( 'ha_ha_ha');
当我尝试输入这样有趣的业务时,似乎 DOMDocument 只是错误,但我应该做些什么来防止恶意输入吗?如果不是,为什么不呢?
其次,htmlentities 是否足以清理输出?