ソフトウェアのセキュリティは、セキュリティ ソフトウェアではありません。ここでは、認証、アクセス制御、機密性、暗号化、権限管理などのトピックについて説明します。
from oslo_config import cfg
...
opts = [
cfg.StrOpt('admin_password',secret=False,
help="User's password")]
...
grp = cfg.OptGroup('mygroup')
cfg.CONF.register_opts(opts, group=grp)
...
logger.warning("Adding %s" % cfg.CONF.mygroup.admin_password)
Example 1
のコードは、secret
が False
に設定されているため、admin_password
を平文 (難読化なし) に書き込んでログに出力します。多くの開発者がイベントログをデータの安全な格納先として信頼しがちですが、特にプライバシーに関わる場合は盲目的に信頼しないでください。<uses-permission .../>
要素では、ACTIVITY_RECOGNITION
権限の使用を宣言しています。この権限により、アプリケーションがユーザーの身体活動を認識できるようになります。<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
<uses-permission .../>
要素では、READ_CALENDAR
権限の使用を宣言しています。この権限により、アプリケーションはユーザーのカレンダー データを読み取ることができます。<uses-permission android:name="android.permission.READ_CALENDAR"/>例 2: AndroidManifest.xml の
<uses-permission .../>
要素では、WRITE_CALENDAR
権限の使用を宣言しており、これにより、アプリケーションがユーザーのカレンダー データに書き込むことが可能になります。<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
<uses-permission .../>
要素では、READ_CALL_LOG
権限の使用を宣言しています。この権限により、アプリケーションはユーザーの通話ログを読み取ることができます。<uses-permission android:name="android.permission.READ_CALL_LOG"/>例 2: AndroidManifest.xml の
<uses-permission .../>
要素では、WRITE_CALL_LOG
権限の使用を宣言しています。この権限により、アプリケーションがユーザーの通話ログに書き込むことができるようになります。<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
<uses-permission .../>
要素では、アプリケーションがデバイスのカメラにアクセスすることを可能にする CAMERA
権限の使用を宣言しています。<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission .../>
要素では、READ_CONTACTS
権限の使用を宣言しています。この権限により、アプリケーションはユーザーの連絡先データを読み取ることができます。<uses-permission android:name="android.permission.READ_CONTACTS"/>例 2: AndroidManifest.xml の
<uses-permission .../>
要素では、WRITE_CONTACTS
権限の使用を宣言しています。この権限により、アプリケーションはユーザーの連絡先データへの書き込みが可能になります。<uses-permission android:name="android.permission.WRITE_CONTACTS"/>例 3: AndroidManifest.xml の
<uses-permission .../>
要素では、GET_ACCOUNTS
権限の使用を宣言しています。この権限により、アプリケーションは、Account Manager に保存されているユーザーのメール アカウントやオンライン アカウントにアクセスできるようになります。この権限により、アカウント ID、電子メールアドレス、電話番号などの機密データにアクセスすることができます。<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission .../>
要素では、WRITE_EXTERNAL_STORAGE
権限の使用を宣言しています。この権限により、アプリケーションが外部ストレージに書き込むことができるようになります。<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>例 2: AndroidManifest.xml の
<uses-permission .../>
要素では、READ_EXTERNAL_STORAGE
権限の使用を宣言しています。この権限により、アプリケーションが外部ストレージから読み取ることができるようになります。<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.BRICK"/>
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);
sms.sendTextMessage(recipient, null, message, PendingIntent.getBroadcast(SmsMessaging.this, 0, new Intent(ACTION_SMS_SENT), 0), null);
<uses-permission .../>
要素では、RECORD_AUDIO
権限の使用を宣言しています。この権限により、アプリケーションはデバイスのマイクを使用してオーディオを録音できるようになります。<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission .../>
要素は、アプリケーションが近くの Bluetooth デバイスにアドバタイズできるようにする BLUETOOTH_ADVERTISE
権限の使用を宣言します。<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
<uses-permission .../>
要素は、アプリケーションがデバイス ユーザーに通知を送信できるようにする POST_NOTIFICATIONS
権限の使用を宣言します。<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission .../>
要素は、アプリケーションがデバイス上の音楽およびオーディオ ファイルを読み取ることができるようにする READ_MEDIA_AUDIO
権限の使用を宣言します。<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
<uses-permission .../>
要素は、アプリケーションがデバイス上のビデオ ファイルを読み取ることができるようにする READ_MEDIA_VIDEO
権限の使用を宣言します。<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission .../>
要素では、BODY_SENSORS
権限の使用を宣言しています。この権限により、アプリケーションは、端末や接続されたウェアラブルに搭載されたボディ センサーや環境センサーからのデータにアクセスできるようになります。<uses-permission android:name="android.permission.BODY_SENSORS"/>
number = tm.getCompleteVoiceMailNumber();
FLAG_GRANT_READ_URI_PERMISSION
や FLAG_GRANT_WRITE_URI_PERMISSION
など、通常は外部プログラムに付与できない権限を付与できるようになります。悪意のあるプログラムがこのインテントを傍受すると、指定された URI の読み書き権限を取得します。インテントが明示的ではなく暗黙的な場合、より傍受されやすくなります。
myIntent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);