One idea, not sure how great it is but it fits in with your constraints. It might not be possible for every post either.
The basic idea is to drive lag bolts (screws) from the underside of the deck and pull the posts down tight against the top of the deck. You'd want fairly large screws (I was able to find 17" lag screws once) and you would want to be sure you drill a properly sized hole to prevent splitting the post but not so large that the threads don't hold firm. I think you'd want at least two screws per post arranged perpendicularly to the direction of concern (outward, I take it.)
Holes drilled through the deck and post holders (if necessary) should be larger than the outer diameter of the threads. You want the screws to pass through freely.
The post holders should stay as noted in the comments. That would help prevent small movements from deforming the deck or the posts.
Underneath, you would need some sort of plate. Otherwise, the screws heads will tear through over time or catastrophically.
The key here is to pull the posts down tight so that the force from leaning on the railing is transferred to the plate and spread out to the bottom of the deck surface. One hitch is that if you do a really good job at this, you might destroy the plastic base.
UPDATE: Alternately you could purchase something like this:
These are designed for concrete but you could put blocking underneath the decking (attached to the joists) and secure them to that. You'd want to orient it so that the 'wings' on top are parallel to the railing.
It's basically the same idea with a couple (possibly crucial) differences:
- It's simpler IMO, no drilling holes into end grain.
- The decking material now is no longer involved in any part of the structure of the post.
I think this is a lot better than my original suggestion. A lot less work, maybe less costly (?), and far more secure. You might want to spray paint them with an appropriate product for better aesthetics.
Not sure this is optimal but I think it's better that what you have now. Also, after you price the hardware, it might not be worth it compared to getting longer posts. And honestly, isherwood's answer is the right way. If this deck is more than a few feet above the ground, I would definitely suck it up and fix it properly and if it's not, there's still risk of injury.