我在我的网站上检测到一些失败的SQL注入攻击.失败的查询格式如下:
SELECT 6106 FROM(SELECT COUNT(*),':sjw:1:ukt:1'x FROM information_schema.tables GROUP BY x)
该':sjw:1:ukt:1'部分是专门构造的变量连接在一起,给出随机0或1等.
我想知道这些查询是做什么的?
数据库是MySQL.
更新:这是原始注入的SQL:
(SELECT 6106
 FROM  (SELECT COUNT(*),
               CONCAT(
                        CHAR(58, 115, 106, 119, 58), 
                        (SELECT ( CASE WHEN ( 6106 = 6106 ) THEN 1 ELSE 0 END )), 
                        CHAR(58, 117, 107, 116, 58), 
                        FLOOR(RAND(0) * 2)
                      ) x
        FROM   INFORMATION_SCHEMA.TABLES
        GROUP  BY x)a) 
它失败了,留言
密钥'group_key'重复输入':sjw:1:ukt:1'
我花了两天时间与另一位同事一起调查此事.我很惊讶,因为大多数解决这个问题的解决方案都有错误的解决方案,或者我认为解决方案有错误的原因.
我们有一个自定义按钮控件,需要在按下时引发ServerClick事件.以下是汇总代码:
public class MyButton : WebControl, IPostBackEventHandler
{
    protected HtmlGenericControl _Button;
    protected string _OnClick = "";
    protected string _Name;
    public event EventHandler ServerClick;
    // etc...    
    public MyButton()
    {
        Width = Unit.Pixel(100);
        _Button = new HtmlGenericControl("button");
        Controls.Add(_Button);
    }
    protected override void Render(HtmlTextWriter writer)
    {
        _Button.Attributes.Add("id", string.IsNullOrEmpty(_Name) ? base.ID : _Name);
        _Button.Attributes.Add("name", _Name);
        // etc...
        _OnClick = Page.ClientScript.GetPostBackEventReference(this, "");
        _Button.Attributes.Add("onClick", _OnClick);
        // etc...
        ID = String.Empty;
        Name = String.Empty;
        AccessKey = String.Empty;
        TabIndex = -1;
        Width = Unit.Empty;
        base.Render(writer);
    }
    protected …itsAnalysisDataTable.CreateEx( WS_EX_CLIENTEDGE, AfxRegisterWndClass( CS_DBLCLKS, LoadCursor( NULL, IDC_ARROW ), (HBRUSH)::GetStockObject( NULL_BRUSH ), NULL ), "AnalysiysTable", WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, dialogItemRect, this, IDC_ANALYSIS_DATA_TABLE );
这条线花了我两天的努力,没有解决方案.itsAnalysisDataTable是一个自定义窗口控件,CWnd作为其盛大的盛大父级.该控件已成功用于其他步骤,而我们的代码中没有任何问题.这是一个CPropertyPage.
我遇到的问题是行原因(并且每次都会这样做)MyProduct(x64)中的0x76f7fd5c处的未处理异常.exe:0xC015000F:被停用的激活上下文不是最近激活的激活上下文.
异常也发生在32位中.我在Windows 7 x64,VS 2008上.
我已经尝试过的:
调用堆栈:
ntdll.dll!0000000076f7fd5c()    
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 
kernel32.dll!0000000076df42d3()     
mfc90d.dll!AfxDeactivateActCtx(unsigned long dwFlags=0, unsigned __int64 ulCookie=2077018657900210161)  Line 260 + 0x19 bytes   C++
观察:
我正在尝试检查正在运行的 Express Node js 应用程序的堆。
在堆转储比较中,看起来有些字符串没有被释放。它们所绑定的承诺已得到解决,但 Retainers 链会上升到全局句柄,然后上升到 GC 根。我不明白这些是什么意思。
有人可以阐明这一点吗?为什么 GC 无法收集这些已解决的 Promise?
garbage-collection memory-management v8 node.js node-inspector
我有一个jsTree,我希望它的一些节点是可移动的.无法移动根节点及其直接子节点.
我正在使用crrm并且它按预期工作但它仍然允许我拖动所有节点,甚至那些无法在任何地方丢弃的节点(紧接在根之下).我根本不希望它们是可拖动的,即用户根本不应该拾取它们.
我有一个 PHP 类,在包含文件之前需要一些预定义的全局变量:
文件:includes/Product.inc.php
if (class_exists('Product')) {
    return;
}
// This class requires some predefined globals
if ( !isset($gLogger) || !isset($db) || !isset($glob) ) {
    return;
}
class Product
{
   ...
}
上述内容包含在需要使用require_once来使用 Product 的其他 PHP 文件中。然而,任何想要使用产品的人都必须确保这些全局变量可用,至少是这样的。
我最近调试了 Product 类中的一个函数中的一个问题,该问题是由于 $gLogger 为空而引起的。需要上述 Product.inc.php 的代码没有费心去创建 $gLogger。所以问题是,如果 $gLogger 为空,这个类是如何被包含的?
我尝试调试代码(NetBeans 中的 xdebug),在 Product.inc.php 的开头放置一个断点来查找,每次到达 if (class_exists('Product')) 子句时,它都会简单地介入并执行return 因此永远不会进入全局检查。那么第一次是如何包含在内的呢?
这是在 MAMP (Apache/MySQL) 下运行的 PHP 5.1+。我没有定义任何自动加载器。
感谢各位提供信息丰富的答案。我的信念是,当您包含一个文件时,PHP 从第一行开始逐行执行它,因此如果未定义全局变量,它将不允许我包含该文件。我会将检查移至构造函数中。根据原来的问题,我接受@deceze的回答