我正在制作网络游戏,如果我的路线看起来像:
import Control.Monad.Trans.Maybe (MaybeT, runMaybeT)
import Control.Monad.Writer (MonadTrans, Writer, lift, runWriter, tell, when)
import ListT (ListT, toList) -- Volkov's list-t package
logging = True
write x = when logging write' where
write' :: MonadTrans m => m (Writer [String]) ()
write' = lift $ tell [x]
f :: ListT (Writer [String]) String
f = do
write "Hello from f"
return "ABC"
g :: MaybeT (Writer [String]) Int
g = do
write "Hello from g"
return 123
main :: IO ()
main = do
print $ runWriter $ toList f
print $ runWriter $ runMaybeT g
任何人都可以使用邮递员或卷曲等方式将数据发布到mywebsite.com/create_account,我的网站将开始为他们创建帐户,即使他们甚至不在我的网页上。
我发现了一个有趣的解决方法,我想知道这是否安全,甚至是个好主意。基本上我将我的应用程序路由包装在socket.io连接中:
app.post('/create_account', (req, res) => {
var email = req.body.email
var pass = req.body.pass
res.json({response: "created"})
})
我对它进行了测试,看起来这样,如果您实际连接到网页,则只能发布到/ create_account。
这样做的缺点是什么(如果有的话)?如果这不是一个坏主意,那么如果他们不在我的网站上,那么这是阻止人们发布数据的更好方法。
答案 0 :(得分:0)