Heim  >  Artikel  >  Backend-Entwicklung  >  php安全 - php现在是不是自带过滤的?

php安全 - php现在是不是自带过滤的?

WBOY
WBOYOriginal
2016-06-06 20:17:171803Durchsuche

原生php,在照着网上做一些安全防范的例子。(有点旧了2012的)
有个js脚本注入的,我在数据数据库里输入无限alert的一个脚本,发现,查询结果无法显示出来,空白的,其他html标签能够正确显示的,比如,h1标签。
然后试了下,只要有

<script></script>

几个字就无法显示,是php自带的过滤吗?还是说是浏览器的过滤= =
顺求哪里可以系统的学习下php安全防范的比较新的。。

<code>echo"<hr>";
echo"<h1>客户端脚本植入</h1>";
$sql2="select username from check_member where uid=1";
$query2=mysqli_query($con,$sql2);
if($query2){
    echo"success<br>";
    $query2=mysqli_fetch_assoc($query2);
    // echo htmlspecialchars($query2['username']);
    echo $query2['username'];
}else{
    echo "failed";
}
</code>

然后数据库username字段里是

<code><script>while(1){alert();}</script>
</code>

是在这个网站的第三篇学习的 内容有点久远了

回复内容:

原生php,在照着网上做一些安全防范的例子。(有点旧了2012的)
有个js脚本注入的,我在数据数据库里输入无限alert的一个脚本,发现,查询结果无法显示出来,空白的,其他html标签能够正确显示的,比如,h1标签。
然后试了下,只要有

<script></script>

几个字就无法显示,是php自带的过滤吗?还是说是浏览器的过滤= =
顺求哪里可以系统的学习下php安全防范的比较新的。。

<code>echo"<hr>";
echo"<h1>客户端脚本植入</h1>";
$sql2="select username from check_member where uid=1";
$query2=mysqli_query($con,$sql2);
if($query2){
    echo"success<br>";
    $query2=mysqli_fetch_assoc($query2);
    // echo htmlspecialchars($query2['username']);
    echo $query2['username'];
}else{
    echo "failed";
}
</code>

然后数据库username字段里是

<code><script>while(1){alert();}</script>
</code>

是在这个网站的第三篇学习的 内容有点久远了

没有做任何处理从数据库直接拿出来 <script>alert(123);</script> 绝对会执行的。刚试过。

贴出你的代码吧少年

htmlspecicalchars() 这个

首推OWasp https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet

浏览器会有一定的防XSS安全措施

chrome 可以看下console中,会有红色提示
IE会在页面头部弹出提示

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn