With the rapid prevalence of smartphones and the dramatic proliferation of mobile applications, people tend to do everything at their fingertips, including some sensitive activities, such as bank transfers. This makes security become one important factor when recommending apps to users. However, most existing methods recommend apps only on the basis of the apps' functionalities. Even when some methods take security into account, they usually roughly group apps with functionalities and identify the products using extra permissions as risky, but this ignores a common phenomenon that these permissions may be used only to achieve the corresponding functionalities. In this paper, we propose an app recommendation method considering both functionalities and security. For functionalities, we summarized them from app descriptions and further evaluated their completion quality in different products by analyzing their related reviews. For security, we cluster apps with similar functionalities and quality and analyze the permissions of apps in a more comparable range. In this way, our method recommends apps with higher completion quality of functionalities and security degree to users according to their demands. We conducted experiments on apps collected from six categories of Google Play, and the results show that our method has a good recommendation effect.