繁体   English   中英

消毒? 不输出为HTML或不进行SQL查询时

[英]Sanitize? When it doesn't output as HTML nor go into an SQL query

在查看了一些网站(例如https://www.owasp.org/index.php/Main_Page )之后,我发现没有明确提到下面的过程会给我带来什么危害;

用户回答多项选择题。 发送带有“答案”作为隐藏字段的表单。

.php页面将其接受(验证它的字符数少于100个),然后从数据库中获取正确答案。 它比较两者(使用==比较运算符)。

然后发送

 echo "Wrong! The correct answer is ".$correctAnswer; //a hack presumably will always be wrong!!!

基本上,让用户输入(最多100个字符)陷入其中可能会造成什么损害

$playersAnswer = $_POST['checkAnswer'];

 if ($correctAnswer == $playersAnswer){ ....etc

对我来说,优点是无需担心用户答案中的任何字母/符号/字符被剥离或转换。 因此,我可以使用完整标点符号,外语甚至有关javascript的问题的问题,而不用担心!

如果您只是在比较中使用POST变量:

$correctAnswer == $playersAnswer

对此没有危险。

危险始于使用变量的地方-在HTML输出中,在数据库查询中,在exec()eval()命令中.....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM