• rottingleaf@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    15 hours ago

    The modularization was a security nightmare. These plugins needed elevated privileges, a d they all needed to handle security themselves, and as I hope you are aware, Flash was atrocious with security.

    Those - yes. But generally something running on a page receiving keystrokes when selected and drawing in a square and interpreting something can be done securely.

    And modern browsers have done a pretty good job securing the javascript sandbox.

    One can have such a sandbox for some generic bytecode separated from everything else on the page. Would be “socially” same as then, technically better.

    • sugar_in_your_tea@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 hours ago

      Let’s look at a scenario where there’s an exploit that requires a change to an API. With JavaScript, the browser vendor can ship a fix to the API, and web devs update their code. With a plugin, the browser vendor ships a patch, then the plugin vendor needs to ship a patch, and then web devs need to update their code. Some plugin vendors will be slower than others, so the whole thing will see massive delays and end users are more likely to stick to insecure browser versions.

      Plugin vendors are going to demand the same API surface as current web standards and perhaps more, so you’re not saving anything by using plugins, and you’re dramatically increasing the complexity of rolling out a fix.

      I think the current web is a decent compromise. If you want your logic in something other than JavaScript, you have WebAssembly, but you don’t get access to nearly as many APIs and need to go through JavaScript. You can build your own abstraction in JavaScript however to hide that complexity from your users. The browser vendor retains the ability to fix things quickly, and devs get flexibility.

      • rottingleaf@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 hour ago

        Let’s look at a scenario where there’s an exploit that requires a change to an API.

        To the plugin API, you mean? Yes, that’s the borderline case of added complexity of having modularity.

        But in that case it’ll work similarly to browser APIs fo JS being fixed. In one case browser devs break plugins, in another they break JS libraries.

        Some plugin vendors will be slower than others, so the whole thing will see massive delays and end users are more likely to stick to insecure browser versions.

        How is this different from JS libs? Except for power imbalance.

        Just - if we are coming to Chrome devs being able to impose their will on anyone, let’s be honest about it. It has some advantages, yes. Just like Microsoft being able to impose Windows as the operating system for desktop users. Downsides too.

        Plugin vendors are going to demand the same API surface as current web standards and perhaps more, so you’re not saving anything by using plugins, and you’re dramatically increasing the complexity of rolling out a fix.

        Well, I described before why it doesn’t seem so for me.

        What I meant is that the page outside of a plugin should be static. Probably even deprecate JS at all. So - having static pages with some content in them executed in a sandbox by a plugin. Have dynamic content in containers inside static content, from user’s perspective. Like it was with Flash applications except NPAPI plugins weren’t isolated in a satisfactory manner.

        I like some things of what we have now. Just - drop things alternative browsers can’t track, and have in the browser a little standardized VM, inside which plugins (or anything) are executed. Break the vertical integration. It’s not a technical problem as much as social.

        With the web being a “platform for applications” now, as opposed to year 1995, that even makes more sense.

        I think the current web is a decent compromise. If you want your logic in something other than JavaScript, you have WebAssembly, but you don’t get access to nearly as many APIs and need to go through JavaScript. You can build your own abstraction in JavaScript however to hide that complexity from your users. The browser vendor retains the ability to fix things quickly, and devs get flexibility.

        We should have the ability to replace the browser vendor.

        Yes, WebAssembly is good, it would be even better were it the only layer for executable code in a webpage.