Skip to content

Commit 1d16221

Browse files
committed
update wappalyzer
1 parent d506120 commit 1d16221

File tree

17 files changed

+130
-1466
lines changed

17 files changed

+130
-1466
lines changed

go.mod

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,25 @@ module github.com/bufsnake/httpx
22

33
go 1.16
44

5-
require golang.org/x/text v0.3.6
5+
require golang.org/x/text v0.3.7
66

7-
require github.com/chromedp/cdproto v0.0.0-20211205231339-d2673e93eee4
7+
require github.com/chromedp/cdproto v0.0.0-20220530001853-c0f376d894d1
88

99
require (
1010
github.com/bufsnake/parseip v0.0.0-20210416105416-fc19e9d32da7
11-
github.com/bufsnake/wappalyzer v0.0.0-20220406020942-dcc72010d57d
12-
github.com/chromedp/chromedp v0.7.6
11+
github.com/bufsnake/wappalyzer v0.0.0-20220602013647-3f6d6dd8fd3f
12+
github.com/chromedp/chromedp v0.8.2
1313
github.com/gin-gonic/gin v1.7.7
1414
github.com/grantae/certinfo v0.0.0-20170412194111-59d56a35515b
1515
github.com/json-iterator/go v1.1.12 // indirect
1616
github.com/kr/pretty v0.3.0 // indirect
1717
github.com/liyue201/goqr v0.0.0-20200803022322-df443203d4ea
1818
github.com/logrusorgru/aurora v2.0.3+incompatible
19-
github.com/miekg/dns v1.1.43
19+
github.com/miekg/dns v1.1.49 // indirect
2020
golang.org/x/image v0.0.0-20211028202545-6944b10bf410
21-
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 // indirect
21+
golang.org/x/net v0.0.0-20220531201128-c960675eff93 // indirect
22+
golang.org/x/tools v0.1.10 // indirect
23+
golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df // indirect
2224
gorm.io/driver/sqlite v1.1.5
2325
gorm.io/gorm v1.21.15
2426
)

go.sum

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
github.com/bufsnake/parseip v0.0.0-20210416105416-fc19e9d32da7 h1:aGPoF7HYZG2ZP804E0OEQeX81mM3aHHiyfMXwffRp24=
22
github.com/bufsnake/parseip v0.0.0-20210416105416-fc19e9d32da7/go.mod h1:OceFywin22f9fCK98DiNJ74kHQsBoLGBZOhVuuTHs90=
3-
github.com/bufsnake/wappalyzer v0.0.0-20220406020942-dcc72010d57d h1:qZaoVZtd/QuR48VEf0rjJiEUF3iBcJy9rPGCfopz8xs=
4-
github.com/bufsnake/wappalyzer v0.0.0-20220406020942-dcc72010d57d/go.mod h1:CyG4jjgFWSJ5ibP3lww9F8jaKReHhvlpKRIaZmXDVZc=
3+
github.com/bufsnake/wappalyzer v0.0.0-20220602013647-3f6d6dd8fd3f h1:1VwJnChtEynrk3bgFPZDFJtzACnhDYOEVrtttTulbh8=
4+
github.com/bufsnake/wappalyzer v0.0.0-20220602013647-3f6d6dd8fd3f/go.mod h1:CyG4jjgFWSJ5ibP3lww9F8jaKReHhvlpKRIaZmXDVZc=
55
github.com/chromedp/cdproto v0.0.0-20211126220118-81fa0469ad77/go.mod h1:At5TxYYdxkbQL0TSefRjhLE3Q0lgvqKKMSFUglJ7i1U=
6-
github.com/chromedp/cdproto v0.0.0-20211205231339-d2673e93eee4 h1:St4rQbn3gGWL59ygb4NBxchIeAIW0CTz5Kw4m5JTemU=
76
github.com/chromedp/cdproto v0.0.0-20211205231339-d2673e93eee4/go.mod h1:At5TxYYdxkbQL0TSefRjhLE3Q0lgvqKKMSFUglJ7i1U=
8-
github.com/chromedp/chromedp v0.7.6 h1:2juGaktzjwULlsn+DnvIZXFUckEp5xs+GOBroaea+jA=
7+
github.com/chromedp/cdproto v0.0.0-20220515234810-83d799542a04/go.mod h1:5Y4sD/eXpwrChIuxhSr/G20n9CdbCmoerOHnuAf0Zr0=
8+
github.com/chromedp/cdproto v0.0.0-20220530001853-c0f376d894d1 h1:dl8AS1mmnSC7kTpRKD4mrDrV3HJqFAm975HWap3HGg0=
9+
github.com/chromedp/cdproto v0.0.0-20220530001853-c0f376d894d1/go.mod h1:5Y4sD/eXpwrChIuxhSr/G20n9CdbCmoerOHnuAf0Zr0=
910
github.com/chromedp/chromedp v0.7.6/go.mod h1:ayT4YU/MGAALNfOg9gNrpGSAdnU51PMx+FCeuT1iXzo=
11+
github.com/chromedp/chromedp v0.8.2 h1:EYSsSqWuKYwyHZEJpU00kOGOMz5DE0qDVckelzauMFA=
12+
github.com/chromedp/chromedp v0.8.2/go.mod h1:vpbCNtfYeOUo2q5reuwX6ZmPpbHRf5PZfAqNR2ObB+g=
1013
github.com/chromedp/sysutil v1.0.0 h1:+ZxhTpfpZlmchB58ih/LBHX52ky7w2VhQVKQMucy3Ic=
1114
github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww=
1215
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
@@ -64,8 +67,9 @@ github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHX
6467
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
6568
github.com/mattn/go-sqlite3 v1.14.8 h1:gDp86IdQsN/xWjIEmr9MF6o9mpksUgh0fu+9ByFxzIU=
6669
github.com/mattn/go-sqlite3 v1.14.8/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
67-
github.com/miekg/dns v1.1.43 h1:JKfpVSCB84vrAmHzyrsxB5NAr5kLoMXZArPSw7Qlgyg=
6870
github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
71+
github.com/miekg/dns v1.1.49 h1:qe0mQU3Z/XpFeE+AEBo2rqaS1IPBJ3anmqZ4XiZJVG8=
72+
github.com/miekg/dns v1.1.49/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME=
6973
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc=
7074
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
7175
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
@@ -85,15 +89,27 @@ github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo=
8589
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
8690
github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs=
8791
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
92+
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
93+
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
8894
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
89-
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
95+
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
9096
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
97+
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=
98+
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
9199
golang.org/x/image v0.0.0-20211028202545-6944b10bf410 h1:hTftEOvwiOq2+O8k2D5/Q7COC7k5Qcrgc2TFURJYnvQ=
92100
golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
101+
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
102+
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o=
103+
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
93104
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
105+
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
94106
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
95-
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=
96107
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
108+
golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
109+
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
110+
golang.org/x/net v0.0.0-20220531201128-c960675eff93 h1:MYimHLfoXEpOhqd/zgoA/uoXzHB86AEky4LAx5ij9xA=
111+
golang.org/x/net v0.0.0-20220531201128-c960675eff93/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
112+
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
97113
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
98114
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
99115
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -103,15 +119,32 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w
103119
golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
104120
golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
105121
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
106-
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 h1:TyHqChC80pFkXWraUUf6RuB5IqFdQieMLwwCJokV2pc=
122+
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
123+
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
124+
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
125+
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
126+
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
107127
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
128+
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k=
129+
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
108130
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
131+
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
109132
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
110133
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
111134
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
112-
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
113135
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
136+
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
137+
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
114138
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
139+
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
140+
golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
141+
golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20=
142+
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
143+
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
144+
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
145+
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
146+
golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df h1:5Pf6pFKu98ODmgnpvkJ3kFUOQGGLIzLIkbzUHp47618=
147+
golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
115148
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
116149
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
117150
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

internal/core/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ func (c *Core) screenshot(w *sync.WaitGroup, datas chan models.Datas, screen_sho
159159
err error
160160
)
161161
fingers := make(map[string]wappalyzer.Technologie)
162-
image, title, fingers, err = screen_shot.Run(data.URL)
162+
image, title, fingers, err = screen_shot.Run(data.URL, data.XFrameOptions)
163163
if err != nil {
164164
c.log.Error(err)
165165
} else {

internal/modelsImpl/datas.go

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ import (
1414
"sort"
1515
"strconv"
1616
"strings"
17+
"sync"
1718
"time"
1819
)
1920

2021
type Database struct {
2122
db *gorm.DB
23+
lock *sync.RWMutex
2224
server bool
2325
}
2426

@@ -32,15 +34,14 @@ func NewDatabase(dbname string, runserver bool) (Database, error) {
3234
Colorful: true,
3335
},
3436
)
35-
3637
db, err := gorm.Open(sqlite.Open(fmt.Sprintf("%s", dbname)), &gorm.Config{
3738
CreateBatchSize: 2000,
3839
Logger: newLogger,
3940
})
4041
if err != nil {
4142
return Database{}, err
4243
}
43-
return Database{db: db, server: runserver}, err
44+
return Database{db: db, server: runserver, lock: &sync.RWMutex{}}, err
4445
}
4546

4647
func (d *Database) InitDatabase() error {
@@ -119,10 +120,14 @@ func (d *Database) InitDatabase() error {
119120
}
120121

121122
func (d *Database) DeleteDatas() error {
123+
d.lock.Lock()
124+
defer d.lock.Unlock()
122125
return d.db.Where("id <> ?", -1).Delete(&models.Datas{}).Error
123126
}
124127

125128
func (d *Database) CreateDatas(datas *[]models.Datas) error {
129+
d.lock.Lock()
130+
defer d.lock.Unlock()
126131
if (*datas)[0].Image != "" {
127132
image, err := d.CreateImage(&[]models.Images{
128133
{Image: (*datas)[0].Image},
@@ -136,14 +141,20 @@ func (d *Database) CreateDatas(datas *[]models.Datas) error {
136141
}
137142

138143
func (d *Database) CreateFinger(datas *[]models.Finger) error {
144+
d.lock.Lock()
145+
defer d.lock.Unlock()
139146
return d.db.Create(datas).Error
140147
}
141148

142149
func (d *Database) ReCreateDatas(datas []models.Datas) error {
150+
d.lock.Lock()
151+
defer d.lock.Unlock()
143152
return d.db.Create(&datas).Error
144153
}
145154

146155
func (d *Database) ReadDatas(page, flag int) (datas []models.Datas, count int64, err error) {
156+
d.lock.RLock()
157+
defer d.lock.RUnlock()
147158
err = d.db.Model(&models.Datas{}).Where("id between ? and ?", (page-1)*flag+1, page*flag).Find(&datas).Error
148159
d.db.Model(&models.Datas{}).Count(&count)
149160
compile := regexp.MustCompile("Subject: .*")
@@ -163,20 +174,27 @@ func (d *Database) ReadDatas(page, flag int) (datas []models.Datas, count int64,
163174
}
164175

165176
func (d *Database) ReadAllDatas() (datas []models.Datas, err error) {
177+
d.lock.RLock()
178+
defer d.lock.RUnlock()
166179
err = d.db.Model(&models.Datas{}).Find(&datas).Error
167180
return
168181
}
169182

170183
func (d *Database) UpdateDatas(datas *[]models.Datas) error {
184+
d.lock.Lock()
185+
defer d.lock.Unlock()
171186
return d.db.Create(datas).Error
172187
}
173188

189+
// 上层存在锁
174190
func (d *Database) CreateImage(images *[]models.Images) (int, error) {
175191
create := d.db.Create(images)
176192
return (*images)[0].Id, create.Error
177193
}
178194

179195
func (d *Database) ReadImage(id int) (string, error) {
196+
d.lock.RLock()
197+
defer d.lock.RUnlock()
180198
images := models.Images{}
181199
err := d.db.Model(&models.Images{}).Where("id = ?", id).Find(&images).Error
182200
if err != nil {
@@ -190,6 +208,8 @@ func (d *Database) ReadImage(id int) (string, error) {
190208
}
191209

192210
func (d *Database) SearchDatas(sql string, params []interface{}, page, flag int) ([]models.Datas, int64, error) {
211+
d.lock.RLock()
212+
defer d.lock.RUnlock()
193213
datas := make([]models.Datas, 0)
194214
err := d.db.Model(&models.Datas{}).Limit(flag).Offset((page-1)*flag).Where(sql, params...).Find(&datas).Error
195215
var count int64
@@ -211,6 +231,8 @@ func (d *Database) SearchDatas(sql string, params []interface{}, page, flag int)
211231
}
212232

213233
func (d *Database) CopyLinks(sql string, params []interface{}) (string, error) {
234+
d.lock.RLock()
235+
defer d.lock.RUnlock()
214236
datas := make([]models.Datas, 0)
215237
var err error
216238
if sql != "" {
@@ -229,6 +251,8 @@ func (d *Database) CopyLinks(sql string, params []interface{}) (string, error) {
229251
}
230252

231253
func (d *Database) ReadFinger(url string) ([]models.Finger, error) {
254+
d.lock.RLock()
255+
defer d.lock.RUnlock()
232256
fingers := make([]models.Finger, 0)
233257
err := d.db.Model(&models.Finger{}).Where("url = ?", url).Find(&fingers).Error
234258
if err != nil {

internal/modelsImpl/lock.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,22 @@ import (
55
)
66

77
func (d *Database) CreateLock() error {
8+
d.lock.Lock()
9+
defer d.lock.Unlock()
810
lock := models.Lock{Lock: false}
911
return d.db.Create(&lock).Error
1012
}
1113

1214
func (d *Database) ReadLock() (models.Lock, error) {
15+
d.lock.RLock()
16+
defer d.lock.RUnlock()
1317
lock := models.Lock{}
1418
err := d.db.Where("`id` = 1").First(&lock).Error
1519
return lock, err
1620
}
1721

1822
func (d *Database) UpdateLock() error {
23+
d.lock.Lock()
24+
defer d.lock.Unlock()
1925
return d.db.Model(&models.Lock{}).Where("`id` = 1").Update("lock", true).Error
2026
}

pkg/requests/request.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ func (r *request) Run() error {
115115
r.http_dump = string(resp)
116116
}
117117
}
118-
r.xframeoptions = do.Header.Get("x-frame-options")
118+
// 无视
119+
r.xframeoptions = ""
119120

120121
if r.title == "400 The plain HTTP request was sent to HTTPS port" {
121122
return errors.New("response title is '400 The plain HTTP request was sent to HTTPS port'")

pkg/screenshot/export.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
)
88

99
type Screenshot interface {
10-
Run(url string) (string, string, map[string]wappalyzer.Technologie, error)
10+
Run(url string, XFrameOptions string) (string, string, map[string]wappalyzer.Technologie, error)
1111
InitEnv() error
1212
Cancel()
1313
SwitchTab()

0 commit comments

Comments
 (0)