如何使用 hack "adb shell content insert --uri content://com.xxxxxx" 限制数据库写入
How to restrict database write using hack "adb shell content insert --uri content://com.xxxxxx"
我的应用程序的数据库易受攻击,恶意代码可以向数据库注入虚假消息。
如何确保它免受 "adb shell content insert --uri content://com.XXX" 的攻击? --绑定
我在清单中尝试了以下内容
<provider android:name=".provider.MyProvider"
android:authorities="com.example.data"
android:exported="false"
android:grantUriPermissions="false"
android:protectionLevel="signature"/>
谢谢
作为改进,我也尝试了这个(在清单中):
<permission
android:name="com.xx.yy_DB_WRITE_PERMISSION"
android:label="xxyyDB"
android:protectionLevel="signature" />
<provider android:name=".provider.ZZProvider"
android:writePermission = "com.xx.yy_DB_WRITE_PERMISSION"
android:exported="false"/>
来自 PC 的 ADB 命令仍然能够在我的应用程序的数据库中注入消息。
<provider>
没有任何保护级别属性。您需要的是通过许可来保护您的提供者。
定义一个 <permission>
并让您的提供商需要它。
http://developer.android.com/guide/topics/manifest/provider-element.html
http://developer.android.com/guide/topics/manifest/permission-element.html
(<permission>
确实有一个 protectionLevel 属性,我想你混淆了这两个元素)
我必须在清单文件中进行以下更改来签署并预加载应用程序并且它有效:
<permission
android:name="com.xx.yy_DB_WRITE_PERMISSION"
android:label="xxyyDB"
android:protectionLevel="signature" />
<provider android:name=".provider.ZZProvider"
android:writePermission = "com.xx.yy_DB_WRITE_PERMISSION"
android:exported="false"/>
我的应用程序的数据库易受攻击,恶意代码可以向数据库注入虚假消息。
如何确保它免受 "adb shell content insert --uri content://com.XXX" 的攻击? --绑定
我在清单中尝试了以下内容
<provider android:name=".provider.MyProvider"
android:authorities="com.example.data"
android:exported="false"
android:grantUriPermissions="false"
android:protectionLevel="signature"/>
谢谢 作为改进,我也尝试了这个(在清单中):
<permission
android:name="com.xx.yy_DB_WRITE_PERMISSION"
android:label="xxyyDB"
android:protectionLevel="signature" />
<provider android:name=".provider.ZZProvider"
android:writePermission = "com.xx.yy_DB_WRITE_PERMISSION"
android:exported="false"/>
来自 PC 的 ADB 命令仍然能够在我的应用程序的数据库中注入消息。
<provider>
没有任何保护级别属性。您需要的是通过许可来保护您的提供者。
定义一个 <permission>
并让您的提供商需要它。
http://developer.android.com/guide/topics/manifest/provider-element.html
http://developer.android.com/guide/topics/manifest/permission-element.html
(<permission>
确实有一个 protectionLevel 属性,我想你混淆了这两个元素)
我必须在清单文件中进行以下更改来签署并预加载应用程序并且它有效:
<permission
android:name="com.xx.yy_DB_WRITE_PERMISSION"
android:label="xxyyDB"
android:protectionLevel="signature" />
<provider android:name=".provider.ZZProvider"
android:writePermission = "com.xx.yy_DB_WRITE_PERMISSION"
android:exported="false"/>