本文讲的是
智慧城市真的安全吗?看看这款APP的分析报告,
今年早些时候,我收到了我们市政府的一个NextDoor讯息,声称他们为民众提供了(购买)一个智慧城市应用程序。在此之前并没有任何关于这个应用程序的信息,而我也没有在网上找到其相关的内容,所以对于它我非常有兴趣尽兴更多地了解。
GET https://api.brightcityapps.com/api/user/getuser/***REMOVED*** HTTP/1.1 Host: api.brightcityapps.com Connection: keep-alive Accept: application/json, text/javascript, */*; q=0.01 User-Agent: Mozilla/5.0 (Linux; Android 7.1.2; Pixel XL Build/NHG47L; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/58.0.3029.83 Mobile Safari/537.36 Accept-Encoding: gzip, deflate Accept-Language: en-US X-Requested-With: com.mobilesciencetech.brightcity
{ "BusinessWatches": [], "Carrier": null, "City": null, "CityGroups": [], "CityGroupPermissions": [], "DepartmentCallDetails": [], "EventSignUps": [], "HomeWatches": [], "Lockboxes": [], "Lockboxes1": [], "LockboxInsurances": [], "Lookouts": [], "LookoutInfoes": [], "Maintenances": [], "OpenRecords": [], "PatrolRequests": [], "Permissions": [], "Photo": null, "Supports": [], "SurveyResponses": [], "UserNotificationSettings": [], "UserLogins": [], "UsersDevices": [], "UserTransactions": [], "UtilityBills": [], "id": ***REMOVED***, "cityid": 17, "first": "Randy", "mi": null, "last": "Westergren", "phone": null, "cell": "***REMOVED***", "carrierid": null, "email": "***REMOVED***", "dob": null, "username": "rwestergren", "password": "***REMOVED***", "thumb": null, "created": "2017-05-21T16:57:00", "active": 1, "admin": 0, "brainTreeCustomerId": null }
package com.mobilesciencetech.brightcity; import android.content.Intent; import android.os.Bundle; import org.apache.cordova.CordovaActivity; public class BrightCity extends CordovaActivity { public BrightCity() { } public void onCreate(Bundle bundle) { super.onCreate(bundle); bundle = getIntent().getExtras(); if(bundle != null && bundle.getBoolean("cdvStartInBackground", false)) moveTaskToBack(true); loadUrl(launchUrl); } }
$.getJSON(url + '/api/LockboxInsurance/GetLockboxInsuranceCompanies', function(companiesJsonPayload) { $('#companyid').append("<option value='0'>Select Insurance Company</option>"); $(companiesJsonPayload).each(function(i, item) { $('#companyid').append('<option value="' + item.id + '">' + item.name + '</option>'); }); $('#companyid').append("<option value='Add'>Add New Company</option>"); }); var userid = window.localStorage.getItem("userid"); $("#itemid").val(id); $("#userid").val(window.localStorage.getItem("userid")); $.getJSON(url + '/api/lockbox/getlockbox/' + id + '', function(result) { if (result == null) { $('#result').append('<li>Item does not exist</li>'); } else { $("#userid").val(window.localStorage.getItem("userid")); $("#name").val(result.name); $.getJSON(url + '/api/lockboxcategory/getlockboxcategories', function(categoriesJsonPayload) { $(categoriesJsonPayload).each(function(i, item) { if (item.id == result.categoryid) { $('#categoryid').append('<option value="' + item.id + '" selected>' + item.name + '</option>'); } else { $('#categoryid').append('<option value="' + item.id + '">' + item.name + '</option>'); } }); }); $.getJSON(url + '/api/LockboxInsurance/GetUserPolicies/' + userid + '', function(companiesJsonPayload) { $('#insurance').append("<option value='0'>Select an insurance policy (choose one)</option>"); $(companiesJsonPayload).each(function(i, item) { if (item.PolicyID == result.policyid) { $('#insurance').append('<option value="' + item.PolicyID + '" selected>' + item.CompanyName + "-" + item.PolicyNumber + '</option>'); } else { $('#insurance').append('<option value="' + item.PolicyID + '">' + item.CompanyName + "-" + item.PolicyNumber + '</option>'); } //$('#insurance').append('<option value="' + item.PolicyID + '">' + item.CompanyName + "-" + item.PolicyNumber + '</option>'); }); $('#insurance').append("<option value='Add'>Add new policy</option>"); }); $("#description").val(result.description); $("#serial").val(result.serial); $("#make").val(result.make); $("#model").val(result.model); $("#caliber").val(result.caliber); $("#additionalinfo").val(result.additionalinfo); $("#room").val(result.roomlocation); $.getJSON(url + '/api/lockbox/GetUserLocationRooms/' + userid + '', function(companiesJsonPayload) { $('#room').append("<option value='0'>Select location of item (choose one)</option>"); $(companiesJsonPayload).each(function(i, item) { if (item.Name == result.roomlocation) { $('#room').append('<option selected value="' + item.Name + '">' + item.Name + '</option>'); } else { $('#room').append('<option value="' + item.Name + '">' + item.Name + '</option>'); } }); $('#room').append("<option value='Add'>Add new location</option>"); }); //$("#insurance").val(result.policyid); $.getJSON(url + '/api/photo/getphoto/' + id, function(photoresult) { if (photoresult.name != "") { var image = document.getElementById('thumb'); var imageData = iurl + '/upload/lockbox/' + id + '/thumb/' + photoresult.name; image.src = imageData; image.style.display = 'block'; //$('#showthumb').html('<img src="' + iurl + '/upload/lockbox/' + id + '/thumb/' + photoresult.name + '" style="width:56px; height:56px; border-radius: 28px; -webkit-border-radius: 28px; -moz-border-radius: 28px;" />'); } }); $.getJSON(url + '/api/photo/getdoc/' + id, function(docresult) { if (docresult != null) { alert(docresult.name); var doc = document.getElementById('doc'); var docData = iurl + '/upload/lockbox/' + id + '/doc/' + docresult.name; doc.src = docData; doc.style.display = 'block'; //$('#showdoc').html('<a href="' + iurl + '/upload/lockbox/' + id + '/doc/' + docresult.name + '" style="width:56px; height:56px; border-radius: 28px; -webkit-border-radius: 28px; -moz-border-radius: 28px;">' + docresult.name + '</a>'); } }); //$.getJSON(url + '/api/lockboxinsurance/GetInsuranceDetails/' + id, function (insresult) { // if (insresult != null) { // $("#policynumber").val(insresult.PolicyNumber); // $("#companyid").val(insresult.CompanyID); // } //}); } });
/api/agency/ /api/agency/getagency/ /api/brightcityapp/ /api/brightcityapp/geteventdetails/ /api/brightcityapp/geteventsforagency/ /api/brightcityapp/geteventsforagencybydaterange/ /api/brightcityapp/geteventsforagencybyloadcount/ /api/brightcityapp/geteventsforagencynew/ /api/brightcityapp/geteventsignupdetails/ /api/brightcitypayments/getcitypaymentsbydaterangenew/ /api/brightcitypayments/getcitypaymentsbyloadcountnew/ /api/brightcitypayments/getcitypaymentsnew/ /api/brightcitypayments/getcityutilpaymentsnew/ /api/brightcitypayments/geteventpaymentdetails/ /api/brightcitypayments/geteventpaymentsbydaterangenew/ /api/brightcitypayments/geteventpaymentsbyloadcountnew/ /api/brightcitypayments/geteventpaymentsnew/ /api/brightcitypayments/geteventutilpaymentsnew/ /api/brightcitypayments/getpaymentdetails/ /api/business/getbusinessesbyagency/ /api/businesswatch/ /api/businesswatch/cancelbusinesswatch/ /api/businesswatch/getbusinesswatch/ /api/businesswatch/getbusinesswatchesforagencybydaterangenew/ /api/businesswatch/getbusinesswatchesforagencybyloadcountnew/ /api/businesswatch/getbusinesswatchesforagencynew/ /api/businesswatchstatus/ /api/businesswatchstatus/getbusinesswatchupdates/ /api/city/getcitiesbyagency/ /api/country/ /api/eyecolor/ /api/gender/ /api/glass/ /api/haircolor/ /api/height/ /api/homewatch/ /api/homewatch/cancel/ /api/homewatch/cancelhomewatch/ /api/homewatch/gethomewatch/ /api/homewatch/gethomewatchesforagencybydaterangenew/ /api/homewatch/gethomewatchesforagencybyloadcountnew/ /api/homewatch/gethomewatchesforagencynew/ /api/homewatchstatus/ /api/homewatchstatus/gethomewatchupdates/ /api/house/gethousesbyagency/ /api/lockbox/ /api/lockbox/deletelockbox/ /api/lockbox/getlockbox/ /api/lockbox/getlockboxesforagencybydaterangenew/ /api/lockbox/getlockboxesforagencybyloadcountnew/ /api/lockbox/getlockboxesforagencynew/ /api/lockboxcategory/ /api/lockboxcategory/getlockboxcategory/ /api/lookout/ /api/lookout/getlookout/ /api/lookout/getlookoutsforagencybydaterangenew/ /api/lookout/getlookoutsforagencybyloadcountnew/ /api/lookout/getlookoutsforagencynew/ /api/lookoutinfo/ /api/lookoutinfo/getlookoutinfoforlookout/ /api/maintenance/ /api/maintenance/cancel/ /api/maintenance/getmaintenance/ /api/maintenance/getmaintenanceforagencybydaterangenew/ /api/maintenance/getmaintenanceforagencybyloadcountnew/ /api/maintenance/getmaintenanceforagencynew/ /api/maintenance/getpublicmaintenanceforagencybydaterangenew/ /api/maintenance/getpublicmaintenanceforagencybyloadcountnew/ /api/maintenance/getpublicmaintenanceforagencynew/ /api/maintenancestatus/ /api/maintenancestatus/getmaintenancestatusforrequest/ /api/message/ /api/message/getmessage/ /api/message/getmessagesforofficerbydaterangenew/ /api/message/getmessagesforofficerbyloadcountnew/ /api/message/getmessagesforofficernew/ /api/newsfeed/getagencynewsfeedslist/ /api/officer/ /api/officer/getofficer/ /api/openrecord/acceptopenrecordrequest/ /api/openrecord/getopenrecord/ /api/openrecord/getopenrecordsforagency/ /api/openrecord/getopenrecordsforagencybydaterange/ /api/openrecord/getopenrecordsforagencybyloadcount/ /api/patrolrequest/acceptpatrolrequest/ /api/patrolrequest/getpatrolrequest/ /api/patrolrequest/getpatrolrequestsforagencybydaterangenew/ /api/patrolrequest/getpatrolrequestsforagencybyloadcountnew/ /api/patrolrequest/getpatrolrequestsforagencynew/ /api/photo/getdoc/ /api/photo/getmaintenancephoto/ /api/photo/getphoto/ /api/race/ /api/scamalert/ /api/scamalert/deletescamalert/ /api/scamalert/getscamalert/ /api/scamalert/getscamalertsforagencybydaterangenew/ /api/scamalert/getscamalertsforagencybyloadcountnew/ /api/scamalert/getscamalertsforagencynew/ /api/skintone/ /api/state/ /api/state/getstate/ /api/support/ /api/trafficalert/ /api/trafficalert/deletetrafficalert/ /api/trafficalert/gettrafficalert/ /api/trafficalert/gettrafficalertsforagencybydaterangenew/ /api/trafficalert/gettrafficalertsforagencybyloadcountnew/ /api/trafficalert/gettrafficalertsforagencynew/ /api/user/ /api/user/getuser/ /api/weatheralert/ /api/weatheralert/deleteweatheralert/ /api/weatheralert/getweatheralert/ /api/weatheralert/getweatheralertsforagencybydaterangenew/ /api/weatheralert/getweatheralertsforagencybyloadcountnew/ /api/weatheralert/getweatheralertsforagencynew/ /api/weight/
原文发布时间为:2017年7月31日
本文作者:鲁班七号
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。