Tainting is a way of keeping track whether or not user input has been
validated before being used in a potentially unsafe context like
executing commands. It's the Ruby equivalent of handling SQL injection
but for general injection tracking.

On Fri, 26 Jun 2020 at 12:45, Craig Russell <apache....@gmail.com> wrote:
>
> It appears that there are some issues with tainting that I do not understand. 
> Thanks to sebb for sorting the immediate issues that kept the tool from 
> working. I still do not understand why the coi.cgi script worked locally with 
> setupmymac but failed when running in the whimsy server environment.
>
> The problems that I had raise some higher level issues worth discussing.
>
> There are at least three ways I know of to use svn from cgi scripts:
> - construct svn commands and call the system to execute them
> - use svn to prepare svn commands and execute them
> - use svn_ to prepare svn commands and execute them
>
> User and password are available as global constants $USER and $PASSWORD. But 
> they are also available in some environments via the "_" variable and ENV.
>
> I'd like to have some best practices documented:
>
> Which technique for executing svn is appropriate?
>
> How should credentials be passed from one layer to the next?
>
> Which code should be responsible for untainting variables?
>
> And while we are discussing structure of code, what kinds of things are 
> appropriate for "top level" execution in the cgi script (outside of a 
> function definition)? What things are appropriate for inside functions? What 
> things are appropriate for directly executing within the _html section, the 
> _body section, the _whimsy_body section, and the do block following the 
> _whimsy_body section?
>
> Craig L Russell
> c...@apache.org
>


-- 
Matt Sicker <boa...@gmail.com>

Reply via email to