SQL攻击,不是利用操作系统的BUG实现攻击,而是利用程序员的疏忽,通过SQL语句,实现无账号登陆,甚至篡改数据库
常见的内存错误及其对策
1 内存未分配成功却使用了它(accert判空)
2 内存分配虽然成功,但尚未初始化就引用它(错误原因:一是没有初始化的概念;二是以为初始化全为零,导致引用错误(例如数组))
3内存分配成功并且已经初始化,但操作越过了内存的边界
例如在使用数组时,经常发生下标多1 或者少1
4忘记了释放内存,造成内存泄露。Malloc、free必须配对使用
5 释放了内存却继续使用它。
有三种情况:
A 程序中的调用关系过于复杂
B 函数的return 语句写错了,(栈内存)
C 使用free或delete释放了内存后,没有将指针设置为NULL
释放内存之后立即将指针设置为NULL,防止产生"野指针"