我有一個對象,我想抓住java中的內容。 唯一的問題是,目前是紅寶石。如何在java中解組ruby對象?
irb(main):050:0> blah
=> "BAh7ByIeYXV0aGVudGljYXRpb25fc3RyYXRlZ2llczAiCXVzZXJpBg%253D%253D-\
-0cdecf4edfaa5cbe4693c9fb83b204c1256a54a6"
irb(main):049:0> Marshal.load(Base64.decode64(blah))
=> {"authentication_strategies"=>nil, "user"=>1}
我得到了base64部分 - 所以現在一切都是以字節爲單位。我將如何訪問第二個字符串?我認爲jruby可以做些事情,但我從未使用過,也不知道從哪裏開始。
讓我詳細說明我的問題。
1)這些都是我想在Apache
2)我不打算將它們存儲在數據庫中Tomcat上的servlet和Merb的應用程序之間共享的cookie。我曾考慮過在memcached中使用它們,但由於其他原因我想將它們存儲爲cookie(是的,我很清楚涉及的安全影響)
我目前正在查看jruby的紅橋/ jruby-嵌入,但是因爲這只是70字節,所以我需要看看,我認爲把所有這些開銷都變得如此簡單是很荒謬的。
,而不是啓動一個新的問題....代碼,我現在看起來像這樣:
// using commons
Base64 b64 = new Base64();
byte[] decoded = b64.decode(cookie.getValue().getBytes());
ScriptingContainer container = new ScriptingContainer();
container.runScriptlet("la = Marshal.load(\"" + decoded + "\"); puts la.to_s;");
顯然,這是行不通的原因元帥是要檢查前2個字節的解碼和怪胎,因爲它不匹配jruby的主要/次要版本.... hrmss ..
我可能是錯的,但是如果cookie中包含ruby代碼,這會不會導致注入漏洞?我知道這個話題很古老,但我想我會把它扔到那裏。 – jgrowl 2013-05-09 03:46:43