在阅读有关SQL注入和XSS的消息时,我想知道你们是否有一个字符串可用于识别这些漏洞和其他漏洞.
可以抛入网站数据库以进行黑盒检查的字符串,检查该字段是否安全.(要对一些内部工具进行大量测试)
粗略的例子,想知道你们是否知道更多?
"a'或'1'='1"
"center'> <script> alert('test')</ script>"
编辑:在SO上找到了一个很好的XSS问题
很抱歉这个问题很长,但是这里包含了我用来测试场景的所有SQL,希望能够清楚地说明我在做什么.
我在SQL Server 2005中构建了一些动态SQL来生成PIVOT表.
下面是执行此操作的代码.使用各种选择显示原始数据使用GROUP BY的值和PIVOT中的值,我想要它们.
BEGIN TRAN
--Create the table
CREATE TABLE #PivotTest
(
ColumnA nvarchar(500),
ColumnB nvarchar(500),
ColumnC int
)
--Populate the data
INSERT INTO #PivotTest (ColumnA, ColumnB, ColumnC) VALUES('A', 'X', 1)
INSERT INTO #PivotTest (ColumnA, ColumnB, ColumnC) VALUES('A', 'Y', 2)
INSERT INTO #PivotTest (ColumnA, ColumnB, ColumnC) VALUES('A', 'Z', 3)
INSERT INTO #PivotTest (ColumnA, ColumnB, ColumnC) VALUES('A', 'X', 4)
INSERT INTO #PivotTest (ColumnA, ColumnB, ColumnC) VALUES('A', 'Y', 5)
INSERT INTO #PivotTest (ColumnA, ColumnB, ColumnC) VALUES('B', 'Z', 6)
INSERT …Run Code Online (Sandbox Code Playgroud) sql-server pivot sql-injection sql-server-2005 dynamic-pivot
我有以下代码:
function dbPublish($status)
{
global $dbcon, $dbtable;
if(isset($_GET['itemId']))
{
$sqlQuery = 'UPDATE ' . $dbtable . ' SET active = ? WHERE id = ?';
$stmt = $dbcon->prepare($sqlQuery);
$stmt->bind_param('ii', $status, $_GET['itemId']);
$stmt->execute();
$stmt->close();
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下我需要mysql_real_escape_string还是我还好吗?
来自jsp和servlet背景我很想知道django如何处理SQL注入黑客.作为servlet和jsp开发人员,我会使用预处理语句,它为我提供了某种形式的保护.django如何处理自定义查询,例如自定义搜索字段.
我讨厌Ruby语言,因为它不是静态类型,但我花在Spring/Hibernate上的时间越多,我就越感谢Ruby on Rails的功能.特别是他们的Active Record模型阻止了SQL注入的事实.这个问题通常是如何处理Spring/Hibernate堆栈的?是否有任何一个带有某种擦洗工具包,以确保您的用户输入是安全的?
如果您只是插入DAO,这对插入来说不是什么问题,但在使用Select语句时这是一个主要问题.
我正在使用spring mvc框架开发web应用程序,我想知道有没有最好的方法来清理用户输入或常用方法来清理Spring中的所有用户输入以避免XSS和Sql Injection攻击?
我有一种情况需要使用LINQ的ExecuteCommand方法来运行插入.
类似的东西(为了这个问题的目的简化):
object[] oParams = { Guid.NewGuid(), rec.WebMethodID };
TransLogDataContext.ExecuteCommand (
"INSERT INTO dbo.Transaction_Log (ID, WebMethodID) VALUES ({0}, {1})",
oParams);
Run Code Online (Sandbox Code Playgroud)
问题是,这是否是SQL注入证明,参数化查询的方式相同?
我已经签约分析现有的数据提供者,我知道以下代码有问题; 但是为了指出它有多糟糕,我需要证明它易受SQL注入的影响.
什么"Key"参数可以破坏PrepareString函数并允许我执行DROP语句?
Public Shared Function GetRecord(ByVal Key As String) As Record
Dim Sql As New StringBuilder()
With Sql
.Append("SELECT * FROM TableName")
If String.IsNullOrEmpty(Agency) Then
.Append(" ORDER BY DateAdded")
Else
.Append(" WHERE Key = '")
.Append(PrepareString(Key))
.Append("'")
End If
End With
Return ExecuteQuery(Sql.ToString())
End Function
Public Shared Function PrepareString(ByVal Value As String) As String
Return Value.Replace("''", "'") _
.Replace("'", "''") _
.Replace("`", "''") _
.Replace("´", "''") _
.Replace("--", "")
End Function
Run Code Online (Sandbox Code Playgroud) 对于某些sql语句,我不能使用准备好的语句,例如:
SELECT MAX(AGE) FROM ?
Run Code Online (Sandbox Code Playgroud)
例如,当我想改变表格时.是否有一个实用程序可以在Java中清理sql?红宝石中有一个.
如果将lamer输入直接插入到SQL查询中,则应用程序容易受到SQL注入的攻击,如下例所示:
dinossauro = request.GET['username']
sql = "SELECT * FROM user_contacts WHERE username = '%s';" % username
Run Code Online (Sandbox Code Playgroud)
删除表或任何东西 - 进行查询:
INSERT INTO table (column) VALUES('`**`value'); DROP TABLE table;--`**`')
Run Code Online (Sandbox Code Playgroud)
有什么办法可以防止这种情况发生?
sql-injection ×10
sql ×5
django ×2
java ×2
spring-mvc ×2
sql-server ×2
xss ×2
.net ×1
hibernate ×1
jdbc ×1
linq ×1
linq-to-sql ×1
mysql ×1
php ×1
pivot ×1
python ×1
security ×1
testing ×1
vb.net ×1