declare @t varchar(555),@c varchar(555) ,@inScript varchar(8000)
set @inScript='这里复制病毒代码'
declare table_cursor cursor for select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167)
open table_cursor
fetch next from table_cursor into @t,@c
while(@@fetch_status=0)
begin
exec('update ['+@t+'] set ['+@c+']=replace(cast(['+@c+'] as varchar(8000)),'''+@inScript+''','''')' )
fetch next from table_cursor into @t,@c
end
close table_cursor
deallocate table_cursor
清除后,务必严格过滤传值和控制数据库字段长度
Node.JS 服务器可以在 后端 连接mysql,这时的情况和php是一样的。
我从未见过前端JS直接连接mysql的,原因是:
(1)浏览器内置的javascript 引擎一般只支持websocket,即基于http连接的套接字高层协议,而不是真正的socket,因此除非服务器端也开启websocket服务并拆开套接字转发到mysql,否则无法代理连接
(2)我见过的绝大多数mysql 服务器都工作在服务器环境下的一个虚拟子网,换句话说,直接的远程3306端口是拒绝连接的,这样可以隔绝端口直接攻击
如果前段js直接可以连接后端服务器mysql的端口,那么就不叫B/S结构了,而是C/S结构(比如传统的windows桌面程序),安全上有很多问题,所以大多数浏览器也不支持这个 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)