# Problemi con Eruby \`initialize': Insecure operation -

**URL:** <https://www.ruby-forum.com/t/problemi-con-eruby-initialize-insecure-operation/119127>\
**Category:** IT\
**Created:** [November 3, 2007, 12:51pm UTC](https://www.ruby-forum.com/t/problemi-con-eruby-initialize-insecure-operation/119127 "2007-11-03T12:51:50Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![panto](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/f9ae1b/32.png) [@panto](https://www.ruby-forum.com/u/panto)\
**Post date:** [November 3, 2007, 12:51pm UTC](https://www.ruby-forum.com/t/problemi-con-eruby-initialize-insecure-operation/119127/1 "2007-11-03T12:51:50Z")

</div>

Salve a tutti , ho letto molto ma non sono riuscito a risovere il  
problema 🙂

Vi descrivo il problema spero che non vi annoiate 🙂

Sto facendo un applicativo web per effettuare query su un file xml,  
dato che il file xml Ã¨ 20M, REXML era molto lento nella fase di  
costruzione del DOM, per ovviare a questo problema ho creato una  
servelet con WEBrick, che risponde su una porta alle richieste della  
query, in questo modo il processo server ha sempre in memoria delle  
liste costruite su dom, per cui la risposta Ã¨ veloce.

Tutto funziona se compongo la richiesta sul browser scrivendo un  
apposito url  
http://…//…//search?word=key  
dove key Ã¨ la parola cercata

Ora una pagina .rhtml , che una form e in si connette via http al  
server con un url tipo il precedente

\<% unless query == “”  
require ‘net/http’  
@uri=URI.parse(“[http://143.225.229.89:8001/search?word=#{query}](http://143.225.229.89:8001/search?word=#%7Bquery%7D)”)  
res = Net::HTTP.get\_response(@uri)  
print res.body  
print $SAFE

end %\>

query Ã¨ la stringa ottenuta dalla form , tutto questo NON FUNZIONA ☹

nel senso che apache nel log mi da questa eccezione:

[Sat Nov 03 13:54:17 2007] [error] mod\_ruby:  
/usr/lib/ruby/1.8/net/http.rb:562:in `initialize': Insecure operation - initialize (SecurityError) [Sat Nov 03 13:54:17 2007] [error] mod_ruby: from /usr/lib/ruby/1.8/net/http.rb:562:in `connect’  
[Sat Nov 03 13:54:17 2007] [error] mod\_ruby: from  
/usr/lib/ruby/1.8/timeout.rb:48:in `timeout' [Sat Nov 03 13:54:17 2007] [error] mod_ruby: from /usr/lib/ruby/1.8/timeout.rb:76:in `timeout’  
[Sat Nov 03 13:54:17 2007] [error] mod\_ruby: from  
/usr/lib/ruby/1.8/net/http.rb:562:in `connect' [Sat Nov 03 13:54:17 2007] [error] mod_ruby: from /usr/lib/ruby/1.8/net/http.rb:555:in `do\_start’  
[Sat Nov 03 13:54:17 2007] [error] mod\_ruby: from  
/usr/lib/ruby/1.8/net/http.rb:544:in `start’

il bello Ã¨ che se metto invece di #{query} nella composizione dell uri  
un stringa fissa funziona…

Quindi il problema Ã¨ che non mi fa connettere mediante una stringa di  
ingresso, penso per problemi di sicurezza…

Premetto che Ã¨ il mio prima programma ruby sono tre giorni che lo  
vedo…

Ho letto che esiste in Ruby il concetto di $SAFE. allora visto che in  
irb il codice funzione ed ha settato la variabile $SAFE a 0, ho provato  
a fare lo stesso in apache modificando http.conf in questo modo:

# Handle files under /eruby as eRuby files

\<Location /eruby\>  
RubySafeLevel 0  
SetHandler ruby-object  
RubyHandler Apache::ERubyRun.instance  
ErrorDocument 500 /ruby/server\_error.rb

# Execute files under /ruby as Ruby scripts

\<Location /ruby\>

SetHandler ruby-object  
RubyHandler Apache::RubyRun.instance  
RubySafeLevel 0  
Options +ExecCGI  
ErrorDocument 500 /ruby/server\_error.rb

Pensando che mettendo RubySafeLevel 0 doveva andare…

Invece NON va e se faccio il print nel file .rhtml della variabile $SAFE  
mi esce 1

Non voglio arrendermi…ma non so cosa fare di piÃ¹ …

vi ringrazio tutti  
antonio
