Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6877051
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T04:33:12+00:00 2026-05-27T04:33:12+00:00

I have a Ruby hash that contains a user-generated string. I need to pass

  • 0

I have a Ruby hash that contains a user-generated string. I need to pass this hash over to JavaScript so it can be processed. I have tried using JSON, which works most of the time, but breaks when the hash contains the text </script>. Here is the simplest code that breaks in Chrome and FF8:

<%
obj = {
  :foo => '</script>'
}
%>
<script type="text/javascript">
var obj = <%= obj.to_json %>; // Results in JS syntax error
</script>

This results in the following HTML:

<script type="text/javascript">
var obj = {"foo":"</script>"};
</script>

I have also tried wrapping the JSON in quotes (both single and double) so it can be parsed via jQuery.parseJSON(), but it results in the same syntax error:

<%
obj = {
  :foo => '</script>'
}
%>
<script type="text/javascript">
var json = '<%= obj.to_json %>'; // Again results in JS syntax error
</script>

It appears that the syntax error is a result of the browser trying to interpret the </script> text as the end of the script block. My current solution is to escape the JSON string as HTML, escape remaining backslashes, write it to JS as a string, unescape the HTML, and then finally parse the JSON:

<%
obj = {
  :foo => '</script>'
}
json = obj.to_json
escaped_json = CGI.escapeHTML(json)
slashed_escaped_json = escaped_json..gsub(/['"\\\x0]/,'\\\\\0')
%>
<script type="text/javascript">
var json = "<%= slashed_escaped_json %>";
json = $('<div/>').html(json).text(); // unescape HTML
var obj = jQuery.parseJSON(json); // parse JSON safely
console.log(obj);
</script>

It works, but it’s ugly. Is there a better way? I don’t want to strip out </script> because I am escaping the content to HTML entities before rendering it on the page.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T04:33:13+00:00Added an answer on May 27, 2026 at 4:33 am

    It turns out this is a bug in the “json” gem for Ruby. I’ve located the source on GitHub and found this pull request sitting in the queue:

    https://github.com/flori/json/pull/51

    The solution is to escape the forward slash, resulting in JSON like this:

    {"foo":"<\/script>"}
    

    Thanks for all your help and I hope this solution helps someone else!

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a Ruby hash that looks like this: h = {side1=>[green, Green], side2=>[verde,
I have a ruby hash that looks like this { stuff_attributes => { 1
Let's say I have a hash in Ruby like this: d = {1 =>
I have a hash in Ruby that is storing the word frequency of a
In Ruby 1.9.x I have a hash that maintains its order hsh = {9=>2,
I'm kinda new to Flex. I have trying to send Hash from Ruby on
so i have ruby script that simply writes to a test.txt file with hello
I have a Ruby on Rails Website that makes HTTP calls to an external
I have a Ruby script that generates a UTF8 CSV file remotely in a
I have a Ruby script in my Rails app that I use to load

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.