How to move unsupported assets?

As I understand, if users send an asset(NFT/token) to a dApp(e.g. DSCVR), and the dApp doesn’t integrate with the asset(e.g. transfer), then the asset will be stuck in the dApp forever, right?

The is no any issue on other blockchains, no matter what kind of assets, users always can move it with wallet.

Is there a solution to address this issue?

What I am thinking is to export identity as PEM from dApp, then use dfx to call the asset canister, is it possible?

works on