Here is my solution by integer linear programming.
Let binary variable $b_{ijk}$ represent whether number $k$ is placed in cell $(i,j)$, while $k=0$ means leaving the cell empty. And let binary variable $rs_{i}$ represent whether the true product of row $i$ is the shown number $+1$ and $cs_{j}$ represent whether the true product of column $j$ is the shown number $+1$.
MIP does not like products, but by taking log, it converts to sums. So let constants $c_k = \log k$ for $k=1,\dots, 12$, $c_0 = 0$, and $\alpha^c_j=(\log(p^c_j +1) - \log(p^c_j - 1)$, $\beta^c_j = \log(p^c_j - 1)$, where $p^c_j$ means the given product of column $j$, and set $\alpha^r_i, \beta_r^i$ accordingly. Then $(\alpha^c_j cs_j + \beta^c_j)$ and $(\alpha^r_i rs_i + \beta^r_i)$ mean log of the true product depending on $cs_j$ and $rs_i$.
The constraints are
$$
\sum_{ij} b_{ijk} = 1 \quad \forall k=1,\dots,12\\
\sum_{k} b_{ijk} = 1\qquad \forall i,j\\
\sum_{i} b_{ij0} = 4\qquad \forall j\\
\sum_{j} b_{ij0} = 4\qquad \forall i\\
\left|\sum_{i,k} c_{k} b_{ijk} -(\alpha^c_j cs_j + \beta^c_j)\right| \leq \varepsilon\quad \forall j \\
\left|\sum_{j,k} c_{k} b_{ijk} -(\alpha^r_i rs_i + \beta^r_i)\right| \leq \varepsilon\quad \forall i$$
The solution given by other answers is the only solution according to the solver.
PS. I accidentally forgot the constraint $\sum_{ij} b_{ijk} = 1$ at first, but there is no other solution generated, meaning that it is redundant to rule every digit exactly once.