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

WBOY
リリース: 2016-06-06 20:17:17
オリジナル
1803 人が閲覧しました

原生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会在页面头部弹出提示

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート