标签: sql-injection

如何使用php和mysql阻止sql注入

我有一个访问者可以输入数据的表单,我想通过$ _POST变量将这些数据存储在mysql数据库中.我需要什么来阻止SQL注入?

php mysql sql-injection

1
推荐指数
1
解决办法
1501
查看次数

SQL注入受损的网站?

这可能听起来像一个奇怪的问题,但有没有我可以下载一个易受sql注入的网站的网站类型没有登录旁路?

我正在制作一个漏洞扫描程序,我想学习一些SQLi,所以我可以将它包含在我的项目中.

谢谢,它不需要花哨.足以练习.

security sql-injection

1
推荐指数
1
解决办法
273
查看次数

SQL注入和.NET 4

是否有.NET 4中的工具来"自动化"SQL域的验证以防止SQL注入?

我看到这篇文章,但害怕可能不是约会......

编辑:
Oracle Db兼容...

.net data-access sql-injection .net-4.0

1
推荐指数
1
解决办法
1104
查看次数

我是否需要将参数清理为SQL存储过程?

我正在写一个ASP(经典)Javascript的快速网站.

我正在使用带参数的预准备语句.没什么特别的.

我的问题是我是否需要清理参数的输入(如果是这样,是否有像PHP这样的本机函数?),或者我使用参数而不是连接内联SQL这一事实让我安全吗?

//Set up the command to run the GetMigrationDate stored procedure.
var command = new ActiveXObject("ADODB.Command");
command.CommandText = "exec myStoredProc ?";

//Set up parameters
command.Parameters.Append(command.CreateParameter("name", 200, 1, 255));
command.Parameters("name") = name;

//Set up result recordset
var results = new ActiveXObject("ADODB.Recordset");

//Run command
results.open(command);
Run Code Online (Sandbox Code Playgroud)

[编辑]存储过程是这样的:

@name varchar(255)

select * from customers where name = @name
Run Code Online (Sandbox Code Playgroud)

sql parameters stored-procedures sql-injection

1
推荐指数
1
解决办法
968
查看次数

从$ _GET/$ _ POST获取信息并将其保存到数据库的实践?

当从获取/发布信息并将信息保存到数据库时,今天的最佳实践是什么?数据是否仍然像过去那样被转义,或者是否有其他做法?此外,HTMLPurifier在哪里可以适应?我目前正在使用它来过滤富文本.

php mysql security sql-injection

1
推荐指数
1
解决办法
288
查看次数

我应该如何处理表单中的单引号以帮助防止SQL注入,使用WebMatrix razor(C#)

目前我根本不允许使用撇号(以及你可以看到的其他角色),对每个字段重复:

foreach(char c in Comments)
    {
        if(c=='\'' || c=='$' || c=='\"' || c=='&' || c=='%' || c=='@' || c=='-' || c=='<' || c=='>')
        {
            errorMessage = "You have entered at least one invalid character in the \"Comments\" field. Invalid characters are: [\'], [\"], [&], [$], [@], [-], [<], [>], and [%]";
        }
    }
Run Code Online (Sandbox Code Playgroud)

我已经编写了一段时间,我正在变得更好,但真正的问题是,虽然我确信有一种方法可以有效地"剥离"或以其他方式验证用户输入,但我不确定方法是最好的,可能直到安全危机迫在眉睫.

如果必须的话,我会决定永远不会允许单引号进入表格(就像现在一样),但是这可能会加剧任何名字的人... Bill O'Reilly的名字字段等等.

可能还有其他(我不知道该怎么称呼它们,'插件?''在程序之外?')可以为我做这个工作,但这实际上是无用的,因为我不仅不知道如何为了整合它,我不知道如何专门定制它到我的Web界面/数据库.

是否有任何代码可以帮助我从正常的撇号中检测sql注入撇号(通过它周围的字符?)?请记住,我的一些字段最多可容纳500个字符(textareas),最多可容纳1,000个字符.

感谢您的任何想法或帮助!

c# sql sql-injection webmatrix razor

1
推荐指数
1
解决办法
294
查看次数

此存储过程是否容易受到SQL注入攻击?

此存储过程将检查用户名和密码,1如果凭据匹配则返回0.

CREATE PROCEDURE usp_CheckPermisssions 
    @UserName NVARCHAR(50),
    @Password NVARCHAR(50)
AS
BEGIN
    SET NOCOUNT ON;

    IF EXISTS( SELECT 1 FROM dbo.Users WHERE Username=@username and Password=@password)
     RETURN 1
    ELSE
     RETURN 0
END
GO
Run Code Online (Sandbox Code Playgroud)

这只是一个示例存储过程.我只是想学习SQL注入技术,以防止我的代码被注入.

假设输入未在前端消毒.

我知道如果我在存储过程中使用动态查询或在前端定义查询,那么SQL注入技术将起作用.

不是:输入将通过前端传递.

换句话说我的问题

任何人都可以对此查询进行注射吗?如果有,怎么样?

sql sql-injection sql-server-2008

1
推荐指数
1
解决办法
5007
查看次数

SQL注入尝试 - 我的代码容易受到攻击吗?

我在日志中发现有人试图攻击我的页面.我有一些子页面,通过URL提交的ID从数据库中提取数据.喜欢page.php?id = 666我在日志中可以找到的是这些攻击:

page.php?id=../../../../../../../../../../etc/passwd
page.php?id=/proc/self/environ
page.php?id=-1%27
Run Code Online (Sandbox Code Playgroud)

更重要的是,我的代码是否很弱?这次攻击可能成功吗?

$id = intval($_GET['id']);
$stmt = $con->prepare("SELECT *
    FROM mytable AS myvar
    WHERE myvar.ID =:ID");
    $stmt->bindValue(':ID', $id, PDO::PARAM_INT);
    $stmt->execute();
Run Code Online (Sandbox Code Playgroud)

提前致谢!

php sql security sql-injection

1
推荐指数
1
解决办法
590
查看次数

(int)php和mysql注入

我知道保护您的网站免受SQL注入的最安全方法是使用Prepared Statements.但是,如果用户输入转换为数字,有人可以解决这个问题?

$id = (int)$_GET['id'];
Run Code Online (Sandbox Code Playgroud)

php mysql sql-injection

1
推荐指数
1
解决办法
142
查看次数

SQL注入生成的查询有多安全?

我正在尝试创建一个可以使用多个单词的搜索栏,但我担心SQL注入.

我使用节点快递故宫MSSQL包.

这是获取条件的代码,生成SQL并运行它:

router
.get('/search/:criteria', function (req, res) {
    var criteria = req.params.criteria;
    var words = criteria.split(" ");

    var x = ""
    words.map(word => x += `name like '%${word}%' and `);
    x = x.substring(0, x.length - 5); // Remove trailing 'and'

    var query = `SELECT * FROM table WHERE ${x}`

    new sql.ConnectionPool(db).connect().then(pool => {
        return pool.request().query(query)
    }).then(result => {

    })
});
Run Code Online (Sandbox Code Playgroud)

搜索something to search将导致此查询:

SELECT * FROM table 
WHERE 
    name like '%something%'
    and name …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-injection node.js express

1
推荐指数
1
解决办法
126
查看次数