aboutsummaryrefslogtreecommitdiff
path: root/src/Data
diff options
context:
space:
mode:
authorLia Lenckowski <lialenck@protonmail.com>2023-08-29 00:20:10 +0200
committerLia Lenckowski <lialenck@protonmail.com>2023-08-29 00:20:10 +0200
commitc2eb030f9d57890fbec6d3fe98688be71fdfb243 (patch)
tree8a95f562d7738c9febe5cf5f01f510741b81395c /src/Data
parent2f12a917b9f156e012c9dd6cae382bdc36fae7c7 (diff)
downloadfastbangs-c2eb030f9d57890fbec6d3fe98688be71fdfb243.tar
fastbangs-c2eb030f9d57890fbec6d3fe98688be71fdfb243.tar.bz2
fastbangs-c2eb030f9d57890fbec6d3fe98688be71fdfb243.tar.zst
warn about sqli-type attacks with emails, and make them a bit harder
Diffstat (limited to 'src/Data')
-rw-r--r--src/Data/PendingBang.hs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/Data/PendingBang.hs b/src/Data/PendingBang.hs
index 05fafba..3a2aaa1 100644
--- a/src/Data/PendingBang.hs
+++ b/src/Data/PendingBang.hs
@@ -45,5 +45,11 @@ instance FromJSON PendingBang where
verifyPendingBang :: PendingBang -> Bool
verifyPendingBang (PendingBang n u dp mayEm) =
- T.all isAlphaNum n && all ((<255) . T.length) strings
+ T.all isAlphaNum n &&
+ all ((<255) . T.length) strings &&
+ emailOk mayEm
where strings = [n, u, dp] <> maybeToList mayEm
+ emailOk Nothing = True
+ emailOk (Just e) =
+ T.all (\c -> isAlphaNum c || c `T.elem` "@-.") e &&
+ T.take 1 e /= "-"