[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$ft-wwROGA0LD7eJ7isXSspoP1djgJIxuuIrkMsq8bckM":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":20,"download_link":21,"security_score":22,"vuln_count":13,"unpatched_count":13,"last_vuln_date":23,"fetched_at":24,"vulnerabilities":25,"developer":26,"crawl_stats":23,"alternatives":31,"analysis":32,"fingerprints":167},"my-kindle-books","My Kindle Books","1.0","adamgroom","https:\u002F\u002Fprofiles.wordpress.org\u002Fadamgroom\u002F","\u003Cp>If you are anything like me you’d love to see the books that your favourite bloggers are reading, that’s why I built this plugin that hopefully they’ll all use.\u003C\u002Fp>\n\u003Cp>The reward for sharing your books is money, just add your Amazon affiliate tags, and make money everytime a user clicks on one of your books, and then buys it from the Amazon store.\u003C\u002Fp>\n\u003Cp>After installing My Kindle Books, simple go to it’s admin page to add your books. This is done by simply connecting your kindle, then browsing it’s documents folder that contains all the books on your Kindle, then selecting your favourite books.\u003C\u002Fp>\n\u003Cp>Once your books have been selected we then take the ISBN numbers from your selected books and send them to our central server, we then get the title, author and cover images for each of your books.\u003C\u002Fp>\n\u003Cp>This information is then displayed on the admin page and you can move the order of your books by dragging them, or remove them from the list by clicking the delete button.\u003C\u002Fp>\n\u003Cp>To add new books just click the browse button again select your new books, and they then will be added to your list.\u003C\u002Fp>\n\u003Cp>If you want to make money when users click on your books, and then purchase them from the Amazon store, you will need to add your Amazon affiliate tags, in the “Affiliate tags” admin page. To get affiliate tags just go to the Amazon store for each country mentioned on the admin page, and fill out the online application.\u003C\u002Fp>\n\u003Cp>A new page will now be created called “My Kindle Books”, this page is a table of your books.\u003C\u002Fp>\n\u003Cp>Each time this page is visited a small request is made to our central server that returns the Country the user is connecting from. This information is then used to update the Amazon link, for example if the user is from Canada there is no point giving him a link to the German store, also we update the affiliate tag as you’ll need a different tag for each country.\u003C\u002Fp>\n","Show off your favourite Kindle books and make money doing it, by adding a book list page on your WordPress blog.",10,1729,0,"2013-08-28T20:58:00.000Z","3.6.1","3.3","",[19],"kindle-books-reading-list-book-list-recommended-reading","http:\u002F\u002Fwww.tail-fme.co.uk\u002Fmy-kindle-books-plugin\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmy-kindle-books.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":27,"total_installs":11,"avg_security_score":22,"avg_patch_time_days":28,"trust_score":29,"computed_at":30},1,30,84,"2026-04-04T21:04:49.209Z",[],{"attackSurface":33,"codeSignals":77,"taintFlows":130,"riskAssessment":156,"analyzedAt":166},{"hooks":34,"ajaxHandlers":56,"restRoutes":73,"shortcodes":74,"cronEvents":75,"entryPointCount":76,"unprotectedCount":40},[35,41,46,52],{"type":36,"name":37,"callback":38,"file":39,"line":40},"action","admin_menu","my_kindle_books_create_admin_menu","admin_menu.php",3,{"type":36,"name":42,"callback":43,"file":44,"line":45},"admin_init","my_kindle_books_styles_and_scripts","js_css.php",15,{"type":47,"name":48,"callback":49,"file":50,"line":51},"filter","parse_query","my_kindle_books_parser","mkb_page.php",31,{"type":47,"name":53,"callback":54,"file":50,"line":55},"the_posts","my_kindle_books_filter",61,[57,62,65,68,69,72],{"action":58,"nopriv":59,"callback":58,"hasNonce":60,"hasCapCheck":59,"file":61,"line":40},"delete_book",false,true,"delete_book.php",{"action":58,"nopriv":60,"callback":63,"hasNonce":59,"hasCapCheck":59,"file":61,"line":64},"my_must_login",4,{"action":66,"nopriv":59,"callback":66,"hasNonce":60,"hasCapCheck":59,"file":67,"line":40},"get_amazon_data","save_books.php",{"action":66,"nopriv":60,"callback":63,"hasNonce":59,"hasCapCheck":59,"file":67,"line":64},{"action":70,"nopriv":59,"callback":70,"hasNonce":60,"hasCapCheck":59,"file":71,"line":40},"new_book_order","save_new_book_order.php",{"action":70,"nopriv":60,"callback":63,"hasNonce":59,"hasCapCheck":59,"file":71,"line":64},[],[],[],6,{"dangerousFunctions":78,"sqlUsage":102,"outputEscaping":104,"fileOperations":13,"externalRequests":128,"nonceChecks":40,"capabilityChecks":13,"bundledLibraries":129},[79,82,85,88,90,94,96,99,100],{"fn":80,"file":39,"line":51,"context":81},"unserialize","$my_kindle_books = unserialize( $my_kindle_books_data );",{"fn":80,"file":39,"line":83,"context":84},102,"$current_tags = unserialize( $affiliate_tags );",{"fn":80,"file":61,"line":86,"context":87},22,"$current_my_kindle_books = unserialize( $my_kindle_books_data );",{"fn":80,"file":50,"line":89,"context":81},43,{"fn":80,"file":91,"line":92,"context":93},"my-kindle-books.php",160,"$affiliate_tags = unserialize( $affiliate_tags );",{"fn":80,"file":67,"line":95,"context":87},49,{"fn":80,"file":67,"line":97,"context":98},50,"$new_my_kindle_books = unserialize( $response['body'] );",{"fn":80,"file":67,"line":55,"context":98},{"fn":80,"file":71,"line":101,"context":87},21,{"prepared":13,"raw":13,"locations":103},[],{"escaped":27,"rawEcho":11,"locations":105},[106,110,112,114,116,118,120,122,124,126],{"file":107,"line":108,"context":109},"add-books.php",33,"raw output",{"file":107,"line":111,"context":109},60,{"file":107,"line":113,"context":109},66,{"file":107,"line":115,"context":109},110,{"file":107,"line":117,"context":109},116,{"file":107,"line":119,"context":109},124,{"file":107,"line":121,"context":109},149,{"file":107,"line":123,"context":109},153,{"file":39,"line":125,"context":109},42,{"file":67,"line":127,"context":109},75,2,[],[131,148],{"entryPoint":132,"graph":133,"unsanitizedCount":13,"severity":147},"get_amazon_data (save_books.php:6)",{"nodes":134,"edges":145},[135,140],{"id":136,"type":137,"label":138,"file":67,"line":139},"n0","source","$_POST",20,{"id":141,"type":142,"label":143,"file":67,"line":101,"wp_function":144},"n1","sink","update_option() [Settings Manipulation]","update_option",[146],{"from":136,"to":141,"sanitized":60},"low",{"entryPoint":149,"graph":150,"unsanitizedCount":13,"severity":147},"\u003Csave_books> (save_books.php:0)",{"nodes":151,"edges":154},[152,153],{"id":136,"type":137,"label":138,"file":67,"line":139},{"id":141,"type":142,"label":143,"file":67,"line":101,"wp_function":144},[155],{"from":136,"to":141,"sanitized":60},{"summary":157,"deductions":158},"The \"my-kindle-books\" v1.0 plugin exhibits a mixed security posture. While it demonstrates good practices by exclusively using prepared statements for SQL queries and avoiding bundled libraries, significant concerns arise from its attack surface and handling of dangerous functions.  The presence of 6 AJAX handlers, with 3 lacking authentication checks, presents a notable risk. This means that potentially sensitive actions can be triggered by unauthenticated users, leading to unauthorized modifications or data exposure. The use of the `unserialize` function without apparent sanitization or validation is another critical area of concern. If the data being unserialized originates from user input, it could lead to Remote Code Execution vulnerabilities.  The lack of recorded vulnerabilities in its history is a positive sign, suggesting a generally well-maintained or less targeted plugin. However, this absence of known issues does not negate the immediate risks identified in the static analysis, particularly the unprotected AJAX endpoints and the insecure use of `unserialize`.  Therefore, while the plugin has some strengths, the identified vulnerabilities, especially the unprotected entry points and the potential for unserialization vulnerabilities, require immediate attention.",[159,161,163],{"reason":160,"points":45},"Unprotected AJAX handlers",{"reason":162,"points":45},"Use of unserialize without clear sanitization",{"reason":164,"points":165},"Low output escaping coverage",5,"2026-03-17T01:24:31.681Z",{"wat":168,"direct":175},{"assetPaths":169,"generatorPatterns":172,"scriptPaths":173,"versionParams":174},[170,171],"\u002Fwp-content\u002Fplugins\u002Fmy-kindle-books\u002Fcss\u002Fjquery-ui.css","\u002Fwp-content\u002Fplugins\u002Fmy-kindle-books\u002Fcss\u002Fmy-kindle-books.css",[],[],[],{"cssClasses":176,"htmlComments":185,"htmlAttributes":186,"restEndpoints":188,"jsGlobals":189,"shortcodeOutput":190},[177,178,179,180,181,182,183,184],"widefat","wp-caption","book_list","sortable","book-image","book-info","delete","clearfix",[],[187],"data-isbn",[],[],[]]