4
A
回答
1
從kernel#eval文檔:
與eval(String [,結合[,文件名[,LINENO]]])→OBJ點擊展開 源代碼
以字符串形式評估Ruby表達式。如果給出綁定,那麼 必須是Binding對象,評估在其上下文中執行。 如果存在可選的文件名和lineno參數,則會在報告語法錯誤時使用 。
但是,正如@andrew-marshall正確指出的那樣,如果您使用任何未經驗證的輸入類型,這是一個巨大的安全漏洞。請參閱Locking Ruby in the Safe作爲更多關於受污染數據和$ SAFE等級信息的起點。
3
你可以用某事嘗試像
Kernel.const_get("User").send('first')
+1
這仍然需要先解析字符串,所以它沒有真正解決OP的問題。 –
相關問題
- 1. 將字符串轉換爲linq查詢
- 2. 將字符串轉換爲LINQ查詢
- 3. 將字符串轉換爲linq查詢
- 4. 如何將字符串列表轉換爲查詢字符串?
- 5. 如何將對象轉換爲與ActiveRecord查詢一起使用的字符串?
- 6. 字符串轉換爲日期時間使ActiveRecord的數據庫查詢
- 7. 轉換的URL,查詢字符串
- 8. 轉換的查詢字符串數組
- 9. 將gitweb查詢字符串轉換爲cgit查詢
- 10. 轉換路徑查詢字符串
- 11. 轉換地圖來查詢字符串
- 12. 轉換查詢字符串在PHP
- 13. 查詢字符串轉換%E1到%ufffd
- 14. 將Postgres查詢轉換爲Rails ActiveRecord?
- 15. 將查詢從SQL轉換爲ActiveRecord
- 16. 將sql查詢轉換爲rails activerecord
- 17. 將SQL查詢轉換爲ActiveRecord關係
- 18. 將postgres VARCHAR查詢轉換爲ruby activerecord
- 19. 在SQL查詢/ ActiveRecord中轉義'@'字符
- 20. 如何將字典轉換爲Python中的查詢字符串?
- 21. 將查詢字符串轉換爲python字典中的requests.post
- 22. 連字符的ActiveRecord查詢
- 23. 轉換LINQ查詢到詞典<字符串,字符串[]>
- 24. 查詢字符串將空間轉換爲? (符號)在asp.net
- 25. SQL Server查詢(查看)將字符串轉換爲DateTime
- 26. 將x-www-form-urlencoded查詢字符串轉換爲字典
- 27. 將python字典轉換爲Solr查詢字符串
- 28. 如何爲int轉換爲字符串LINQ查詢
- 29. 將字符串轉換爲int,int轉換爲字符串
- 30. 字符串轉換爲字節轉換
顯而易見的解決方法是使用'eval',但是這會帶來整個安全問題。特別是因爲它似乎是用戶輸入 - 是嗎? –
所以問題是,它總是「model.classmethod」?以及這個字符串來自哪裏?可靠的消息來源?爲什麼看起來像Ruby代碼而不是某種數據結構? – tokland