Security for launching from URL
Bert Freudenberg
bert at freudenbergs.de
Mon Jul 7 18:01:29 EDT 2008
Am 07.07.2008 um 23:22 schrieb Eben Eliason:
> On Mon, Jul 7, 2008 at 4:59 PM, Noah Kantrowitz
> <noah at coderanger.net> wrote:
>> On Jul 7, 2008, at 12:52 PM, Eben Eliason wrote:
>>
>>> On Fri, Jul 4, 2008 at 6:42 PM, Ivan Krstić
>>> <krstic at solarsail.hcs.harvard.edu> wrote:
>>>>
>>>> That said, the URI handler approach should be used sparingly.
>>>> It's one
>>>> thing to allow starting an audio player by clicking an MP3 link
>>>> in the
>>>> browser, and another to arbitrarily execute code (e.g. through an
>>>> execution environment such as Pippy or eToys) from a web page
>>>> with a
>>>> single click. While Bitfrost is designed to mitigate the side
>>>> effects
>>>> of arbitrary code execution, it's very unwise to make it trivial
>>>> for
>>>> the user to trigger such execution unknowingly.
>>>
>>> I really don't see anything wrong with injecting a modal alert,
>>> displayed by Sugar, into this process if we must. Clicking on an
>>> mp3
>>> in Browse would reveal this alert, and ask for confirmation that the
>>> user wishes to open it. It would, of course, offer a list of
>>> activities which support its mime-type (assuming there are more than
>>> one). It could potentially include a way to set the default handler
>>> as well, such that the next time it is revealed for the same mime-
>>> type
>>> a different default is chosen. I recognize that we try at all costs
>>> to eliminate this form of dialog, but I also recognize that we might
>>> not want to allow an activity to arbitrarily launch other activities
>>> without the user's consent.
>>
>> Repetitive modal dialogs are useless bordering on harmful when was
>> the last
>> time you read an IE dialog carefully.
>
> In my post I acknowledged this fact, and I certainly remain cognizant
> of it. We've tried very hard to prevent them. However, if the cost
> of eliminating them completely is to prevent making this type of
> inter-activity functionality work smoothly, I'll go for the dialog.
> Basically, my reasoning in this circumstance is that the modal dialog
> is actually a /better/ user experience than being dumped into the
> Journal and left to fend for yourself (not knowing which button to
> press, etc.)
>
> Additionally, I think that the dialog is slightly less awful for two
> reasons. First, it will likely be the case that kids will simply
> click OK or press enter instinctively anytime they explicitly click on
> a link or button with the intent of launching something else.
> However, I would expect them to think twice about it if they were
> automatically presented with one or many of these dialogs without
> taking an action to reveal it, which is a primary reason we need it at
> all. Second, I think we can actually mitigate the level of awful by
> providing other useful actions, taking it a step above "Did you really
> mean to do that thing you told me to? [yes] [no]" dialogs. In
> addition to the "Cancel this launch operation" and "Yes, really launch
> this URI with the default activity" buttons, we can offer "Launch this
> URI with a non-default activity", "Keep object pointed to by URI in my
> Journal" (for non-local URIs), and "Show object pointed to by URI in
> my Journal" (for local URIs). Finally, the possibility of adding a
> "Edit the object pointed to by this URI such that it updates in the
> activity I'm launching it from" option could make it much more
> powerful in the future.
>
> I think that a variety of useful user-facing options for how to handle
> this will make the dialog less like an arbitrary
> just-click-ok-and-curse-this-machine-for-asking-me-useless-questions
> type of experience.
At the risk of being ignored again I still think a menu instead of a
dialog would be less intrusive.
- Bert -
More information about the Devel
mailing list