防止恶意代码注入XSS(cross site scripting)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防止恶意代码注入XSS(cross site scripting)相关的知识,希望对你有一定的参考价值。
Login.php页面 <!DOCTYPE html> <html> <head> <title>登录页面</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <form action="LoginController.php" method="post"> <table> <tr><td>用户名</td><td><input type="text" name="username"/></td></tr> <tr><td>密 码</td><td><input type="password" name="password"/></td></tr> <tr><td><input type="submit" value="submit"/></td><td><input type="reset" value="reset"/></td></tr> </table> </form> </body> </html> LoginController.PHP页面 <!DOCTYPE html> <html> <head> <title>登录验证</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <?php //接收用户提交的用户名和密码(login.php页面提交的参数) $username=$_REQUEST[‘username‘]; $password=$_REQUEST[‘password‘]; //到数据库验证,怎样写出安全的代码,防止其它用户攻击 //1.连接数据库 $link=mysql_connect("localhost","root","root"); if(!$link){ die("连接数据库失败".mysql_error()); } //2.选择数据库 mysql_select_db("test") or die("选择数据库有误".mysql_error()); //3.构建SQL语句,并查询 //使用PDO的方式来防止SQL注入 $query="select * from users where username=? and password=? "; //1.创建一个PDO对象 $myPdo=new PDO("mysql:host=localhost;port=3306;dbname=test","root","root"); //2.设置字符编码 $myPdo->exec("set name utf8"); //3.预处理$query $pdoStatement=$myPdo->prepare($query); //4.把接收到的用户和密码填入 $pdoStatement->execute(array($username,$password)); //5.取出结果 $res=$pdoStatement->fetch(); if(empty($res)){ echo "failed|<a href=‘Login.php‘>try to login</a>"; }else{ header("Location:ManageUsers.php"); } ?> </body> </html> ManageUsers.PHP页面 <!DOCTYPE html> <html> <head> <title>登录验证</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> YOU SUCCEED! </body> </html>
以上是关于防止恶意代码注入XSS(cross site scripting)的主要内容,如果未能解决你的问题,请参考以下文章
Cross-Site Scripting (XSS) Attack Lab (Web Application: Elgg)——山东大学网络攻防实验