有人可以指点我一个关于安全运行部分来自用户输入的SQL查询的初学者指南吗?我正在使用Java,但语言中立的指南也很好.
期望的行为是,如果有人在GUI中输入类似的东西
very nice;) DROP TABLE FOO;
数据库应将其视为文字字符串并安全地存储它而不丢弃任何表.
鉴于声明:
const char *sql = "INSERT INTO FooTable (barStr) VALUES (?)";
Run Code Online (Sandbox Code Playgroud)
以下使用sqlite3_bind_text(和相关sqlite3_bind_*函数)是否足以防止SQL注入攻击?
sqlite3 *db;
sqlite3_stmt *dbps;
int dbrc = sqlite3_open([dbFilePath UTF8String], &db);
if (dbrc) {
// handle error
return;
}
dbrc = sqlite3_prepare_v2 (db, sql, -1, &dbps, NULL);
sqlite3_bind_text(dbps, 1, [userContent UTF8String], -1, SQLITE_TRANSIENT);
dbrc = sqlite3_step(dbps);
if (SQLITE_DONE != dbrc) {
// handle error
}
sqlite3_finalize (dbps);
sqlite3_close(db);
Run Code Online (Sandbox Code Playgroud) 用户是否可以伪造从$_SERVER['REMOTE_ADDR']PHP 返回的结果,以便它们理论上可以在数据库上使用SQL注入?
这有点愚蠢,但我仍然对PHP足够新,我想知道它是否可以完成,无论我是否需要在SELECT语句从返回的IP地址中选择时清理数据库输入$_SERVER['REMOTE_ADDR'].所以,如果我想使用类似的东西$query = "SELECT * FROM users WHERE IP='" . $_SERVER['REMOTE_ADDR'] . "'";,我会这样做会有危险吗?
再一次,可能是一个"nooby"问题,但我觉得必须要问.
谢谢
从恶意用户那里获取coldfusion网页的最佳做法是什么?(包括但不限于sql注入攻击)
cfqueryparam足够吗?
我习惯用PHP/MySQL开发,没有使用SQL Server开发的经验.我已经浏览了PHP MSSQL文档,它在我读到的一些方法中看起来与MySQLi相似.
例如,使用MySQL我使用函数mysql_real_excape_string().PHP/SQL Server有类似的功能吗?
我需要采取哪些步骤来防止SQL Server注入SQL?
有关SQL注入预防的SQL Server和MySQL之间有什么区别?
还 - 这篇文章准确吗?是单引号的SQL Server的转义字符串字符?
我一直都知道Magic Quotes根本不会停止SQL注射,但我无法理解为什么不呢!举个例子,假设我们有以下查询:
SELECT * FROM tablename
WHERE email='$x';
Run Code Online (Sandbox Code Playgroud)
现在,如果用户输入$x=' OR 1=1 --,则查询将是:
SELECT * FROM tablename
WHERE email='\' OR 1=1 --';
Run Code Online (Sandbox Code Playgroud)
Magic Quotes会添加反斜杠,不会造成任何损害!
有没有办法,我没有看到用户可以在这里绕过魔术报价插入?
有些人认为mysql_real_escape_string()有一些缺陷,即使正确使用也无法保护您的查询.
将一些化石制品作为证据.
所以,问题是:mysql [i] _real escape_string()是完全不可接受的吗?
或者是否仍然可以使用此函数来创建自己的预备语句?
请提供验证码.
我在我的Web应用程序中使用ASP.NET的登录控件.我想在标签上显示一个有趣的错误类型,System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client
当用户尝试通过在Login控件的用户名文本字段中输入它们来尝试进行SQL注入攻击或某些HTML或SCRIPT操作时,就会出现这种错误.我尝试了很多东西,例如在try catch块中包含身份验证登录,并捕获
System.Web.HttpRequestValidationException异常也为我创建的事件做同样的操作,就像用户名TextBox的onTextChange一样.但所有这些尝试都失败了.请告诉我如何检查此异常并向攻击者显示一个有趣的消息?
GraphQL最近发布,似乎鼓励在客户端编写查询.
我们想要使用aws的javascript sdk在Athena中执行参数化查询.
似乎Athena的命名查询可能是这样做的,但是文档似乎非常神秘,无法理解如何去做.
如果有人可以帮我们做以下事情,那就太好了
SELECT c FROM Country c WHERE c.name = :name name参数的值sql-injection ×10
mysql ×3
security ×3
php ×2
asp.net ×1
c# ×1
cfml ×1
coldfusion ×1
escaping ×1
graphql ×1
ip-address ×1
iphone ×1
java ×1
named-query ×1
railo ×1
sql ×1
sql-server ×1
sqlite ×1
validation ×1