mirror of
https://gitea.phreedom.club/localhost_frssoft/bloat.git
synced 2025-05-02 10:04:22 +00:00
Add CSRF protection
This commit is contained in:
parent
5fdc7a59b2
commit
bf2cfaf0ed
13 changed files with 219 additions and 48 deletions
79
migrations/csrfToken/main.go
Normal file
79
migrations/csrfToken/main.go
Normal file
|
@ -0,0 +1,79 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"math/rand"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
"bloat/config"
|
||||
"bloat/kv"
|
||||
"bloat/repository"
|
||||
"bloat/util"
|
||||
)
|
||||
|
||||
var (
|
||||
configFile = "bloat.conf"
|
||||
)
|
||||
|
||||
func init() {
|
||||
rand.Seed(time.Now().Unix())
|
||||
}
|
||||
|
||||
func getKeys(sessionRepoPath string) (keys []string, err error) {
|
||||
f, err := os.Open(sessionRepoPath)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
return f.Readdirnames(0)
|
||||
}
|
||||
|
||||
func main() {
|
||||
opts, _, err := util.Getopts(os.Args, "f:")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
for _, opt := range opts {
|
||||
switch opt.Option {
|
||||
case 'f':
|
||||
configFile = opt.Value
|
||||
}
|
||||
}
|
||||
|
||||
config, err := config.ParseFile(configFile)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
if !config.IsValid() {
|
||||
log.Fatal("invalid config")
|
||||
}
|
||||
|
||||
sessionRepoPath := filepath.Join(config.DatabasePath, "session")
|
||||
sessionDB, err := kv.NewDatabse(sessionRepoPath)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
sessionRepo := repository.NewSessionRepository(sessionDB)
|
||||
|
||||
sessionIds, err := getKeys(sessionRepoPath)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
for _, id := range sessionIds {
|
||||
s, err := sessionRepo.Get(id)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
s.CSRFToken = util.NewCSRFToken()
|
||||
err = sessionRepo.Add(s)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue