We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 9b4d0b6 commit ed4b973Copy full SHA for ed4b973
middlewares/chat_backend.rb
@@ -1,6 +1,8 @@
1
require 'faye/websocket'
2
require 'thread'
3
require 'redis'
4
+require 'json'
5
+require 'erb'
6
7
module ChatDemo
8
class ChatBackend
@@ -32,7 +34,7 @@ def call(env)
32
34
33
35
ws.on :message do |event|
36
p [:message, event.data]
- @redis.publish(CHANNEL, event.data)
37
+ @redis.publish(CHANNEL, sanitize(event.data))
38
end
39
40
ws.on :close do |event|
@@ -48,5 +50,12 @@ def call(env)
48
50
@app.call(env)
49
51
52
53
+
54
+ private
55
+ def sanitize(message)
56
+ json = JSON.parse(message)
57
+ json.each {|key, value| json[key] = ERB::Util.html_escape(value) }
58
+ JSON.generate(json)
59
+ end
60
61
0 commit comments