Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
46c13a4b
Unverified
Commit
46c13a4b
authored
Jan 07, 2023
by
boojack
Committed by
GitHub
Jan 07, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: add skipper for secure (#913)
parent
96798e10
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
74 additions
and
6 deletions
+74
-6
common.go
server/common.go
+6
-0
resource.go
server/resource.go
+6
-1
server.go
server/server.go
+7
-1
version.go
server/version/version.go
+2
-3
version_test.go
server/version/version_test.go
+33
-0
00__activity.sql
store/db/migration/prod/0.10/00__activity.sql
+9
-0
LATEST__SCHEMA.sql
store/db/migration/prod/LATEST__SCHEMA.sql
+10
-0
EmbedMemoDialog.tsx
web/src/components/EmbedMemoDialog.tsx
+1
-1
No files found.
server/common.go
View file @
46c13a4b
package
server
import
(
"net/http"
"github.com/labstack/echo/v4"
"github.com/usememos/memos/api"
"github.com/usememos/memos/common"
...
...
@@ -16,6 +18,10 @@ func composeResponse(data interface{}) response {
}
}
func
DefaultGetRequestSkipper
(
c
echo
.
Context
)
bool
{
return
c
.
Request
()
.
Method
==
http
.
MethodGet
}
func
(
server
*
Server
)
DefaultAuthSkipper
(
c
echo
.
Context
)
bool
{
ctx
:=
c
.
Request
()
.
Context
()
path
:=
c
.
Path
()
...
...
server/resource.go
View file @
46c13a4b
...
...
@@ -7,6 +7,7 @@ import (
"net/http"
"net/url"
"strconv"
"strings"
"time"
"github.com/pkg/errors"
...
...
@@ -266,7 +267,11 @@ func (s *Server) registerResourcePublicRoutes(g *echo.Group) {
return
echo
.
NewHTTPError
(
http
.
StatusInternalServerError
,
fmt
.
Sprintf
(
"Failed to fetch resource ID: %v"
,
resourceID
))
.
SetInternal
(
err
)
}
c
.
Response
()
.
Writer
.
Header
()
.
Set
(
"Content-Type"
,
resource
.
Type
)
if
strings
.
HasPrefix
(
resource
.
Type
,
"text"
)
||
strings
.
HasPrefix
(
resource
.
Type
,
"application"
)
{
c
.
Response
()
.
Writer
.
Header
()
.
Set
(
"Content-Type"
,
echo
.
MIMETextPlain
)
}
else
{
c
.
Response
()
.
Writer
.
Header
()
.
Set
(
"Content-Type"
,
resource
.
Type
)
}
c
.
Response
()
.
Writer
.
WriteHeader
(
http
.
StatusOK
)
c
.
Response
()
.
Writer
.
Header
()
.
Set
(
echo
.
HeaderCacheControl
,
"max-age=31536000, immutable"
)
c
.
Response
()
.
Writer
.
Header
()
.
Set
(
echo
.
HeaderContentSecurityPolicy
,
"default-src 'self'"
)
...
...
server/server.go
View file @
46c13a4b
...
...
@@ -64,7 +64,13 @@ func NewServer(ctx context.Context, profile *profile.Profile) (*Server, error) {
e
.
Use
(
middleware
.
CORS
())
e
.
Use
(
middleware
.
Secure
())
e
.
Use
(
middleware
.
SecureWithConfig
(
middleware
.
SecureConfig
{
Skipper
:
DefaultGetRequestSkipper
,
XSSProtection
:
"1; mode=block"
,
ContentTypeNosniff
:
"nosniff"
,
XFrameOptions
:
"SAMEORIGIN"
,
HSTSPreloadEnabled
:
false
,
}))
e
.
Use
(
middleware
.
TimeoutWithConfig
(
middleware
.
TimeoutConfig
{
Skipper
:
middleware
.
DefaultSkipper
,
...
...
server/version/version.go
View file @
46c13a4b
...
...
@@ -7,10 +7,10 @@ import (
// Version is the service current released version.
// Semantic versioning: https://semver.org/
var
Version
=
"0.
9.1
"
var
Version
=
"0.
10.0
"
// DevVersion is the service current development version.
var
DevVersion
=
"0.
9.1
"
var
DevVersion
=
"0.
10.0
"
func
GetCurrentVersion
(
mode
string
)
string
{
if
mode
==
"dev"
{
...
...
@@ -29,7 +29,6 @@ func GetMinorVersion(version string) string {
func
GetSchemaVersion
(
version
string
)
string
{
minorVersion
:=
GetMinorVersion
(
version
)
return
minorVersion
+
".0"
}
...
...
server/version/version_test.go
0 → 100644
View file @
46c13a4b
package
version
import
"testing"
func
TestIsVersionGreaterOrEqualThan
(
t
*
testing
.
T
)
{
tests
:=
[]
struct
{
version
string
target
string
want
bool
}{
{
version
:
"0.9.1"
,
target
:
"0.9.1"
,
want
:
true
,
},
{
version
:
"0.10.0"
,
target
:
"0.9.1"
,
want
:
true
,
},
{
version
:
"0.9.0"
,
target
:
"0.9.1"
,
want
:
false
,
},
}
for
_
,
test
:=
range
tests
{
result
:=
IsVersionGreaterOrEqualThan
(
test
.
version
,
test
.
target
)
if
result
!=
test
.
want
{
t
.
Errorf
(
"got result %v, want %v."
,
result
,
test
.
want
)
}
}
}
store/db/migration/prod/0.10/00__activity.sql
0 → 100644
View file @
46c13a4b
-- activity
CREATE
TABLE
activity
(
id
INTEGER
PRIMARY
KEY
AUTOINCREMENT
,
creator_id
INTEGER
NOT
NULL
,
created_ts
BIGINT
NOT
NULL
DEFAULT
(
strftime
(
'%s'
,
'now'
)),
type
TEXT
NOT
NULL
DEFAULT
''
,
level
TEXT
NOT
NULL
CHECK
(
level
IN
(
'INFO'
,
'WARN'
,
'ERROR'
))
DEFAULT
'INFO'
,
payload
TEXT
NOT
NULL
DEFAULT
'{}'
);
store/db/migration/prod/LATEST__SCHEMA.sql
View file @
46c13a4b
...
...
@@ -93,3 +93,13 @@ CREATE TABLE tag (
creator_id
INTEGER
NOT
NULL
,
UNIQUE
(
name
,
creator_id
)
);
-- activity
CREATE
TABLE
activity
(
id
INTEGER
PRIMARY
KEY
AUTOINCREMENT
,
creator_id
INTEGER
NOT
NULL
,
created_ts
BIGINT
NOT
NULL
DEFAULT
(
strftime
(
'%s'
,
'now'
)),
type
TEXT
NOT
NULL
DEFAULT
''
,
level
TEXT
NOT
NULL
CHECK
(
level
IN
(
'INFO'
,
'WARN'
,
'ERROR'
))
DEFAULT
'INFO'
,
payload
TEXT
NOT
NULL
DEFAULT
'{}'
);
web/src/components/EmbedMemoDialog.tsx
View file @
46c13a4b
...
...
@@ -34,7 +34,7 @@ const EmbedMemoDialog: React.FC<Props> = (props: Props) => {
<
code
className=
"w-full break-all whitespace-pre-wrap"
>
{
memoEmbeddedCode
()
}
</
code
>
</
pre
>
<
p
className=
"w-full text-sm leading-6 flex flex-row justify-between items-center mt-2"
>
* Only the public memo supports.
<
span
className=
"italic opacity-80"
>
* Only the public memo supports.
</
span
>
<
span
className=
"btn-primary"
onClick=
{
handleCopyCode
}
>
Copy
</
span
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment