首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >中断登录代码测试

中断登录代码测试
EN

Stack Overflow用户
提问于 2012-01-04 14:55:42
回答 2查看 3K关注 0票数 0

可能重复:

What is SQL injection?

我看到了一些他们使用代码的地方

代码语言:javascript
运行
复制
login=' or 1=1 -- & password=' or 1=1 --

从前端登录到网站。我想知道这段代码是如何破解登录的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-04 16:43:31

您给出的示例利用了深思熟虑的代码,其中用户输入不会转义并在查询中使用。假设有一个带有用户和密码字段(form.html)的表单,它将输入的值传递给php脚本(test.php)。假设用户在两个字段中写入'‘OR 1 =1--

下面的代码不会转义用户输入。您应该使用mysql_real_escape_string()或参数化查询来实现这一点。

form.html:

代码语言:javascript
运行
复制
<form method="POST" action="test.php">
    <input type="text" name="login" value=""><br />
    <input type="text" name="password" value=""><br />
    <input type="submit"/>
</form>    

test.php:

代码语言:javascript
运行
复制
$name = $_POST['login'];
$pass = $_POST['password'];
echo $name . "<br />";
$sql= "SELECT * FROM users WHERE login = $name AND password = $pass ";
// $sql now contains this command:
// SELECT * FROM users WHERE login= '' OR 1=1-- AND password = '' OR 1 =1-- 
// condition OR 1=1 means that any row satisfies the query
// as long as there is at least 1 row in the table users, authorisation will be succcesful
echo $sql . "<br />";
$result=mysql_query($sql);
票数 2
EN

Stack Overflow用户

发布于 2012-01-04 14:56:50

您要寻找的是SQL注入。

http://en.wikipedia.org/wiki/SQL_injection

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8728857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档