fix(api): protect emoji delete api from path traversal exploit
This commit is contained in:
parent
225dc98736
commit
1b14800c7d
@ -76,9 +76,13 @@ func DeleteCustomEmoji(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// var emojiFileName = filepath.Base(emoji.Name)
|
|
||||||
targetPath := filepath.Join(config.CustomEmojiPath, emoji.Name)
|
targetPath := filepath.Join(config.CustomEmojiPath, emoji.Name)
|
||||||
|
|
||||||
|
if !filepath.IsLocal(targetPath) {
|
||||||
|
controllers.WriteSimpleResponse(w, false, "Emoji path is not valid")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if err := os.Remove(targetPath); err != nil {
|
if err := os.Remove(targetPath); err != nil {
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
controllers.WriteSimpleResponse(w, false, fmt.Sprintf("Emoji %q doesn't exist", emoji.Name))
|
controllers.WriteSimpleResponse(w, false, fmt.Sprintf("Emoji %q doesn't exist", emoji.Name))
|
||||||
|
Loading…
Reference in New Issue
Block a user